用于在Net Framework

时间:2018-05-16 08:04:13

标签: asp.net .net httpclient

我们可以在HttpClient中使用至少2个处理程序来处理由Net Framework 4.6.1+编写的应用程序,即:

  • HttpClientHandler(Net Framework的一部分)
  • WinHttpHandler(已提供 来自Nuget)

下一个问题没有比较它们的文章:

  • 效果比较
  • 使用DNS转换(当DNS FQDN的IP时 改变了)
  • 连接租约超时(当HttpClient没有时) 自动缩放时自动移动到新实例)

有没有人可以分享您的使用体验 WinHttpHandler

1 个答案:

答案 0 :(得分:0)

Karel Zikmund 回答了我的问题,您可以通过下一个url

查看
  

从.NET Core 2.1开始, HttpClientHandler 默认使用 SocketsHttpHandler -套接字上的新C#实现。

     

它的关键价值是跨平台的一致性以及对性能的关注(尤其是针对Linux / Mac上的 CurlHandler )。

     

WinHttpHandler 是winhttp OS组件的包装。如果您需要HTTP / 2,则它是当前唯一的选项,因为 SocketsHttpHandler 还不支持HTTP / 2(请参见#23134)。

     

DNS更改在两者上的行为相同,但是,您可以通过 SocketsHttpHandler.PooledConnectionLifetime 对其进行一些调整。

     

不支持DNS TTL-请参见#24257#11224。解决方法是定期回收处理程序。您还可以使用更高级别的包装器HttpClientFactory来帮您实现这一目的(至少是出于动机)。