【发布时间】:2018-03-12 14:50:00
【问题描述】:
问题:
我正在尝试使用 Bugzilla 的 REST API 从远程 Bugzilla 服务器访问数据。每当我等待来自HttpClient.GetAsync 的响应时,就会抛出这个exception。
我的尝试:
为了理解异常,我调查了以下 SO 问题和 GitHub 问题:
- Meaning of “The server returned an invalid or unrecognized response” in HttpClient
- The server returned an invalid or unrecognized response" error when ...
- HttpClient fails with "The server returned an invalid or unrecognized ...
核心代码:
以下代码的目的是获取位于_url_version 的服务器的Bugzilla 版本。例如,如果我设置_url_version = "https://bugzilla.mozilla.org/rest/version",我会得到一个有效的response。
// Get version, dummy test to ensure REST API is working via http requests
public async Task<string> GetVersion()
{
using (var client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(_url_version);
string json = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<Rootobject>(json).version;
}
}
问题:
这个异常是什么意思?什么可能导致我的应用程序和远程 Bugzilla 服务器之间的通信中断?
【问题讨论】:
-
该 URL 返回 gzip 响应,请参阅:Decompressing GZip Stream from HTTPClient Response
-
@AlexK 我将响应序列化为一个对象。对于示例 URL,序列化工作正常。问题实际上是从不同的 URL 获取响应。
-
对不起,我错过了工作位。你试过追踪吗:stackoverflow.com/questions/18924996/…
-
我会试一试,看看我能找到什么。谢谢亚历克斯。
-
@AlexK Here 是异常的相关跟踪。有什么想法吗?
标签: c# http asp.net-core-2.0