带有 Body 的 HttpClient Get 请求有错误 C#

HttpClient Get request with Body have Error C#

我研究了很多,很多人提到无法通过正文获取请求。我设法使用 Postman 得到了它的回复。现在我想写我的代码,但我不知道该怎么做。我需要得到回复,但要使 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;

您在代码中使用了 Windows 特定的 WinHttpHandler 类型,您不需要这样做,因为您没有自定义它,这就是导致异常的原因。

如果您将代码更改为以下内容,它应该适用于 .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;