带有 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;
我研究了很多,很多人提到无法通过正文获取请求。我设法使用 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;