HttpWebRequest的GetRespons偶尔超时和死掉的原因及解决办法

HttpWebRequest的GetRespons偶尔超时和死掉的原因及解决办法

在做一个接口的时候,部分需求时根据用户指定的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;

详细代码案例:

更加详细的延时分析: