我正在创建一个NuGet包来从一个在线API中检索图像。我使用的是.NetStandard 1.4和System.Net.Http版本4.3.2。每次我调用Login方法来获得访问api的令牌时,http调用都不会返回,只会挂起,直到由于超时而出现任务取消异常为止。我尝试过在网上找到多个解决方案,比如确保异步调用之前没有.Result或.Wait(),测试中也没有。我也尝试使用一个不正确的url,调用仍然挂起,并且不返回,说url不存在。
我已经把主要的http电话发到下面。任何帮助,为什么这是悬念,将是非常感谢。
HttpRequestMessage requestMessage = new HttpRequestMessage();
requestMessage.RequestUri = new Uri($"{BaseUrl}/login");
requestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(HttpContentType.JSON));
requestMessage.Method = HttpMethod.Post;
requestMessage.Content = new StringContent(JsonConvert.SerializeObject(values), Encoding.UTF8, HttpContentType.JSON);
using (HttpClient httpClient = new HttpClient())
{
using (HttpResponseMessage response = await httpClient.SendAsync(requestMessage))
{
if (response.IsSuccessStatusCode == true)
{
// Do work
}
}
}BaseUrl值和该网站的路径是正确的,我已经检查过了。此外,我使用了相同的链接和所有的信息,我需要在邮递员,以核实我使用的是正确的信息。
我尝试使用MSTest、控制台项目和WPF项目(使用按钮并单击event来触发此方法)来测试此方法。每个方法都挂起,并且永远不会通过
using (HttpResponseMessage ...发布于 2018-02-25 05:02:53
我很久以前就知道了,但它恰好是我的路由器上的一个设置。我使用的是Airport极限,IPv6设置被设置为“自动”。我把它改为“只链接本地”,我所有的HTTP调用都开始正常工作,并且响应性很强。
https://stackoverflow.com/questions/45497883
复制相似问题