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