【问题标题】:C# HttpRequestMessage Content-Type force as "application/json" only [duplicate]C# HttpRequestMessage Content-Type 强制为“application/json” [重复]
【发布时间】: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#

【问题讨论】:

标签: c# api


【解决方案1】:

考虑以下方法

content.Headers.Remove("内容类型"); // "{application/json; charset=utf-8}" content.Headers.Add("Content-Type", "application/json");

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 2020-11-14
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2018-12-16
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多