【发布时间】:2017-06-06 12:03:34
【问题描述】:
我正在尝试从C# 代码中找到API。我无法获得响应并收到状态代码“500 - 内部服务器错误”。
找到了“Charset-UTF8”被附加到请求头中的原因
当我尝试在没有“Charset-UTF8”的情况下在 Fiddler 中访问 API 时,我能够在 Fiddler 和邮递员中获得响应。使用“Charset-UTF8”我得到相同的 500 内部服务器错误。内容类型为application/json。
我什至尝试了每一种字符集编码方法 UTF-8、16、32、unicode 和 C# 代码的默认格式,都给出了相同的错误。
请告诉我如何从 API 请求标头中删除 CharSet(appending)。
请查看我附上的代码
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);
});
【问题讨论】:
-
从您的 IE 浏览器中删除 cookie,然后重试。服务器可能仍在使用带有 UTF8 设置的旧 cookie。
-
@mjwills 谢谢老兄!我从您的链接中得到了解决方案。我修改了几行以获得 httpclient 响应作为回报。
-
太棒了!您能否发布您最终得到的结果,以便未来的人们可以看到解决方案?
标签: c# asp.net-web-api encoding utf-8 httpclient