【发布时间】:2021-11-23 17:16:25
【问题描述】:
我正在创建一个将对象发布到 API 端点的 HttpClient 请求。 API 端点只接受“application/json”,但我的应用程序将类型更改为 API 不接受的“application/json; charset=utf-8”。我要在 StringContent 中进行什么更改以使其仅是“应用程序/json”?我尝试将编码类型从 Default 更改为 null 到 UTF8,但这并没有改变它。
var httpClientHandler = new HttpClientHandler();
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) =>
{
true;
};
var client = new HttpClient(httpClientHandler);
var webRequest = new HttpRequestMessage(HttpMethod.Post, base_url + url)
{
Content = new StringContent(body, Encoding.Default, "application/json")
};
ebRequest.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apitoken);
webRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Console.WriteLine(webRequest.RequestUri);
Console.WriteLine(webRequest.Headers.ToString());
var response = client.Send(webRequest);
为了响应重复,他们似乎做了一个与下面显示的版本不同的异步版本。我添加了更多代码来显示差异。
解决方案如下:How to remove the default charset in HttpClient Request Header C#
【问题讨论】:
-
@armandobracho 该解决方案有效。谢谢