Использование WinHttpHandler и HttpClientHandler для приложений, написанных на Net Framework - PullRequest
0 голосов
/ 16 мая 2018

Есть как минимум 2 обработчика, которые мы можем использовать в HttpClient для приложений, написанных Net Framework 4.6.1+, т.е. :

  • HttpClientHandler (часть Net Framework)
  • WinHttpHandler (прилагается через Nuget)

Нет статей для сравнения по следующим вопросам:

  • сравнение производительности
  • работа со смещением DNS (когда IP для DNS FQDN изменено)
  • Тайм-аут аренды подключения (когда HttpClient не автоматически переходить на новый экземпляр при автоматическом масштабировании)

Может ли кто-нибудь поделиться вашим опытом использования WinHttpHandler ?

1 Ответ

0 голосов
/ 22 июля 2018

Karel Zikmund написал ответ на мой вопрос, вы можете увидеть его через следующий url

Начиная с .NET Core 2.1, HttpClientHandler по умолчанию использует SocketsHttpHandler - новая реализация C # поверх сокетов.

Ключевым значением является согласованность между платформами и ориентация на производительность (особенно в отношении CurlHandler в Linux / Mac).

WinHttpHandler является оберткой над компонентом Winhttp OS. Если вам нужен HTTP / 2, в настоящее время это единственный вариант, так как SocketsHttpHandler пока не поддерживает HTTP / 2 (см. # 23134 ).

Изменения DNS ведут себя одинаково на обоих, однако, вы можете немного подправить его с помощью SocketsHttpHandler.PooledConnectionLifetime .

DNS TTL не поддерживается - см. # 24257 и # 11224 . Обходной путь должен регулярно перерабатывать обработчик. Вы также можете использовать оболочку более высокого уровня HttpClientFactory , которая сделает это за вас (по крайней мере, в качестве мотивации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...