在做一個接口的時候,部分需求時根據用戶指定的Url,通過Post方式來發送數據,之前的多次調試,一直都是可以正常發送數據獲取返回值,但是後來幾次的調試,在沒有改變代碼的前提下,結果GetResponse卻始終會超時死掉。
經過上網百度一共找出了下面幾種原因與對應的解決辦法:
1、修改DefaultConnectionLimit 為更大的值(系統默認為2)
System.Net.ServicePointManager.DefaultConnectionLimit = 50;
2、在HttpWebRequest req = (HttpWebRequest)WebRequest.Create(v_strURL)前面添加一句垃圾回收
System.GC.Collect();
3、每次使用完HttpWebRequest去關閉對應的http connection
req.Close();
req=null;
最好對應的HttpWebResponse也要close:
rep.Close();
rep = null;
詳細代碼案例:點擊打開鏈接
更加詳細的延時分析:點擊打開鏈接