HttpClient是否有默认并发数限制?


在.Net 4.0之前,一直是依靠HttpWebRequest实现Http操作的。它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下HttpWebRequest往往得不到理想的速度(估计这个策略郁闷了不少码农),必须修改App.config或ServicePointManager.DefaultConnectionLimit值。

MS在.Net 4.5中引入了一个HttpClient类专门处理Http操作,本来我以为HttpClient和HttpWebRequest遵循一样的策略的。今天在写一个多线程下载的程序的时候,用到了10个并发连接,发现在默认的情况下,HttpClient并没有并发数限制

最初我以为是.Net 4.5取消了这个并发数限制(毕竟现在基本上没有谁遵循这个标准了),然后用WebRequest重写了相关代码,发现依然是2并发上限,并且ServicePointManager.DefaultConnectionLimit的值也是2。也就是说: HttpClient不受HttpWebRequest并发策略控制,也没有系统级的并发限制

另外,测试的时候发现,HttpWebRequest默认也不是对所有地址都2并发上限的。例如,对本地的http地址连接(http://localhost/*)就没有并发限制。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM