鉴于以下 .Net Core 2.1 控制台应用程序...
using System;
using System.Diagnostics;
using System.Net.Http;
using System.Net.Http.Headers;
namespace TestHttpClient
{
class Program
{
static void Main(string[] args)
{
try
{
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string url = "https://jsonplaceholder.typicode.com/posts/1";
var response = httpClient.GetAsync(url).Result;
string jsonResult = response.Content.ReadAsStringAsync().Result;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
}
}
}
对 GetAsync 的调用挂起并引发异常并显示以下消息:
System.Net.Http.HttpRequestException: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应而建立的连接失败 ---> System.Net.Sockets.SocketException: A连接尝试失败,因为被连接方在一段时间后没有正确响应,或者因为连接的主机没有响应而建立连接失败
但是,切换到 .Net Core 2.0 并且它工作正常......
笔记
我试过使用:
HttpClientFactory -> Same result
WebRequest -> Same result
想法?
更新 1 这在不在公司网络上时有效,这可能意味着代理的行为可能会发生变化。但是,无论如何,core2.0 仍然可以工作,因此试图找到差异。
更新 2 似乎引入了一个错误,据报道...
https://github.com/dotnet/corefx/issues/30166#issuecomment-395489603
一只斗牛犬
杨__羊羊
慕慕森
相关分类