HttpClient Получить запрос с телом есть ошибка C# - PullRequest
1 голос
/ 08 апреля 2020

Я много исследовал, и многие люди упоминали, что невозможно получить запрос с телом. Мне удалось получить ответ от него с помощью Почтальона. Теперь я хочу написать в своем коде, но я не знаю, как это сделать. Мне нужно получить ответ, но чтобы этот URL работал, мне нужно включить тело. Кто-нибудь знает, как включить тело, используя код C#?

Это мой текущий код, но есть ошибка -> System.PlatformNotSupportedException: 'WinHttpHandler is only supported on .NET Framework and .NET Core runtimes on Windows. It is not supported for Windows Store Applications (UWP) or Unix platforms.'

 var handler = new WinHttpHandler();
        var client = new HttpClient(handler);

        var request = new HttpRequestMessage
        {
            Method = HttpMethod.Get,
            RequestUri = new Uri("my url"),
            Content = new StringContent("my json body content", Encoding.UTF8, "application/json"),
        };

        var response = await client.SendAsync(request).ConfigureAwait(false);
        response.EnsureSuccessStatusCode();
        var responsebody = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
        string text = responsebody.ToString();
        string[] str = text.Split(new[] { ',', ':' }, StringSplitOptions.RemoveEmptyEntries);
        string result = str[10];
        labelTxt.Text = result;

1 Ответ

0 голосов
/ 09 апреля 2020

Вы используете тип Windows -specifi c `` в своем коде, что вам не нужно делать, поскольку вы не настраиваете его, что и вызывает исключение.

Если вы измените свой код на приведенный ниже, он должен работать на любой платформе на. NET Core:

var client = new HttpClient(); // Changed to use the default HttpClient constructor

var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("my url"),
    Content = new StringContent("my json body content", Encoding.UTF8, "application/json"),
};

var response = await client.SendAsync(request).ConfigureAwait(false);
response.EnsureSuccessStatusCode();
var responsebody = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
string text = responsebody.ToString();
string[] str = text.Split(new[] { ',', ':' }, StringSplitOptions.RemoveEmptyEntries);
string result = str[10];
labelTxt.Text = result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...