CMN*_*raj 4 c# encoding httpclient utf-8 asp.net-web-api
我正在尝试点击API来自C#代码。我无法获得响应并收到状态代码“500 - 内部服务器错误”。
找到了Charset-UTF8在请求头中附加“ ”的原因
当我尝试在没有“ Charset-UTF8”的情况下点击 Fiddler 中的 API 时,我能够在 Fiddler 和邮递员中获得响应。使用“ Charset-UTF8”,我得到相同的 500 内部服务器错误。内容类型为application/json.
我什至尝试了每种字符集编码方法 UTF-8、16、32、unicode 和 C# 代码的默认格式,都给出了相同的错误。
请让我知道如何从 API 请求标头中删除 CharSet(附加)。
请检查我附上的代码
HttpClient client1 = new HttpClient();
client1.BaseAddress = new Uri("i have third party url");
client1.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/json"));//ACCEPT header
client1.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", userName, password))));
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, client1.BaseAddress);
StringContent content = new StringContent(JsonConvert.SerializeObject("working request"));
request.Content = content;
client1.SendAsync(request)
.ContinueWith(responseTask =>
{
Console.WriteLine("Response: {0}", responseTask.Result);
});
Run Code Online (Sandbox Code Playgroud)
试试下面的解决方案
content.Headers.Remove("Content-Type"); // "{application/json; charset=utf-8}"
content.Headers.Add("Content-Type", "application/json");
Run Code Online (Sandbox Code Playgroud)
或者
content.Headers.ContentType.CharSet = string.Empty;
Run Code Online (Sandbox Code Playgroud)
我已经在dotnet/corefxrepo上提交了一个问题。
检查一下https://github.com/dotnet/corefx/issues/25290
在.NET Core 2.0、.NET Standard 2.0 上测试
| 归档时间: |
|
| 查看次数: |
5981 次 |
| 最近记录: |