问题:
我正在尝试使用Bugzilla的REST API从远程Bugzilla服务器访问数据。每当我等待HttpClient.GetAsync
的回复时,都会抛出此exception。
我做了什么:
为了解这个例外,我调查了以下SO问题和GitHub问题:
核心代码:
以下代码的目的是在_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服务器之间的通信中断?
答案 0 :(得分:0)
在进行了一些挖掘后,我能够通过将Bugzilla 更新到5.0.4解决此问题。
ROOT原因:
通过使用Curl,我能够从Http响应(here)手动检查标头。异常是由响应中的噪音引起的:
Bugzilla.pm:sysread()已弃用:utf8句柄。这将是Perl 5.30中C:/ ...
的致命错误出于某种原因,perl模块的这个问题正在服务器端回应。
<强> SOLUTION:强>
根据Bugzilla 5.0.4 release notes,问题已得到解决。我更新了我的Bugzilla安装,REST API按预期工作。
希望这对那里的人有帮助!