Есть ли способ передать этот тип контента "application / x- www-form-urlencoded;v=2.0" в C#? - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь повторить в 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);
        }
    }


1 Ответ

0 голосов
/ 31 января 2020

Вы можете попытаться напрямую использовать request.Content.Headers.Add("Content-Type", "application/x-www-form-urlencoded;v=2.0");

MediaTypeHeaderValue, чтобы обеспечить поддержку только для стандартного типа носителя, как определено для HTTP / 1.1

EDIT ошибка :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...