Я пытаюсь повторить в C# следующий код в CURL. Обратите внимание, что этот код работает правильно с curl. Я использую этот https://curl.olsh.me/ для создания запроса.
curl -k -u "Пользователь по умолчанию: robotics" -H "Тип контента: application / x- www-form-urlencoded;v=2.0" -d "value = TRUE" "https://localhost/rw/rapid/symbol/RAPID/T_ROB1/EGMDemo/run_egm/data?mastership=implicit"
Я пытался перевести эту команду в c# и при поступлении в строку:
запрос. Content.Headers.ContentType = new MediaTypeHeaderValue ("application / x- www-form-urlencoded;v=2.0");
Я получаю исключение, что application / x- www-form-urlencoded;v=2.0 недействительно. Как я могу передать этот тип контента? Если это невозможно с httpclient, есть ли другой способ сделать это?
var handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback = (requestMessage, certificate, chain, policyErrors) => true;
using (var httpClient = new HttpClient(handler))
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://localhost/rw/rapid/symbol/RAPID/T_ROB1/EGMDemo/run_egm/data?mastership=implicit"))
{
var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("Default User:robotics"));
request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}");
request.Content = new StringContent("value=TRUE");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded;v=2.0");
var response = await httpClient.SendAsync(request);
}
}