С учетом следующего консольного приложения .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: попытка подключения не удалась, потому чтоподключенная сторона не ответила должным образом через некоторое время или не удалось установить установленное соединение, поскольку подключенный хост не смог ответить
Однако переключитесь на .Net Core 2.0, и он работает нормально ...
ПРИМЕЧАНИЕ
Я пытался использовать:
HttpClientFactory -> Same result
WebRequest -> Same result
Мысли?
ОБНОВЛЕНИЕ 1 Это работает, когда отсутствует в корпоративной сети, что может означать изменение поведения с прокси-сервером, возможно.Тем не менее, core2.0 по-прежнему работает независимо от того, поэтому пытается найти разницу.
ОБНОВЛЕНИЕ 2 Похоже, ошибка была введена и сообщается ...
https://github.com/dotnet/corefx/issues/30166#issuecomment-395489603