HttpWebRequest 对每个主机 2 个连接的限制是不是适用于 HttpClient?

Posted

技术标签:

【中文标题】HttpWebRequest 对每个主机 2 个连接的限制是不是适用于 HttpClient?【英文标题】:Does HttpWebRequest's limit of 2 connections per host apply to HttpClient?HttpWebRequest 对每个主机 2 个连接的限制是否适用于 HttpClient? 【发布时间】:2012-05-01 20:31:35 【问题描述】:

是否有人知道,每个主机 2 个连接的(默认)速率限制是否适用于 System.Net.Http.HttpClient。

请说明您的信息来源以及此限制是否可以像this 那样增加,或者是否有更好/更简单的方法来做到这一点。

另外,有限制器实现吗?例如每分钟最多 40 个调用?

有一篇关于使用 Reactive Extensions here 的节流策略的好文章,但我想知道是否有 HttpClient 方法来做到这一点。

【问题讨论】:

【参考方案1】:

根据documentation(见备注第三段),HttpClient默认使用HttpWebRequest。而HttpWebRequest 确实有每个主机的两个并发连接限制。

HttpClient 没有说明HttpClientHandler(默认值)是否更改了HttpWebRequest 中的任何默认值。我怀疑不是。

如果您想更改它,您必须创建自己的 HttpMessageHandler 并将引用传递给 HttpClient 构造函数。

【讨论】:

快速查看HttpMessageHandler,但无法设置MaxConnections。我想Reflection 在这里会有所帮助...

以上是关于HttpWebRequest 对每个主机 2 个连接的限制是不是适用于 HttpClient?的主要内容,如果未能解决你的问题,请参考以下文章

Clickhouse:如何获得 2 个连续行的平均值?

在每个请求的.net HttpWebRequest上设置SecurityProtocol(Ssl3或TLS)

HttpWebRequest 超时(被阻塞) c#

如何对HttpWebRequest和HttpWebRsponse异步调用

域名和主机文件

扩展多个 HttpWebRequest?