HttpClient Get или Post не работает с .NETCore 2.1 и 2.2, но работает с .NETCore 2.0 - PullRequest
0 голосов
/ 03 января 2019

Я использую Visual Studio 2017 v15.9.4, .NET Standard 2.0.3 и последнюю версию .NETCore 2.1.6. Я запускаю свое приложение на Windows 10 64bit.

Этот код:

 using (HttpClient client = new HttpClient())
            {
                try
                {
                    var response = await client.GetAsync("http://httpbin.org/")
                ...

не работает с последней версией .NET Core 2.1 или 2.2. У меня есть это исключение:

Result StackTrace:  
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at EliorNugetCommon.Tests.APIManagerTests.Get() in D:\Git\Elior-Group\WebApiServices\NugetWAS\EliorNugetCommon\EliorNugetCommon.Tests\APIManagerTests.cs:line 50
----- Inner Stack Trace -----
Result Message: 
System.AggregateException : One or more errors occurred. (A task was canceled.)
---- System.Threading.Tasks.TaskCanceledException : A task was canceled.

Но это работает с .NET Core 2.0.9!

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 05 января 2019

С новым стеком HTTP в .NET Core и .NET Core 2.2 наблюдается регрессия с аутентификацией за прокси. В этом случае мы можем использовать HTTP-стек .NET Core 2.0 следующим ключом:

AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);

Для получения дополнительной информации обсуждение здесь: https://github.com/dotnet/corefx/issues/30166

...