在网络上搜索了一些WinForm环境下进行Web请求(Request)的方法,简单的应用并没有发现什么问题。
但是我需要使用多线程对不同的的Url进行请求,以获得Web数据。
实践发现每次请求完两个页面url后都会出现超时的问题。
网上搜索了一下,开始是说把HttpWebRequest的请求对象的ServicePoint.ConnectionLimit(同时请求的数量,默认为2)设置的高一点。
设置高了以后超时的问题的确就没出现了。
本以为程序好用了,可以长时间应用后又出现了超时问题,很明白又达到同时请求的上限。
看来HttpWebRequest请求对象不会自行销毁(当初网上给代码的人也没写上销毁方法)最后把程序中的每一个应用到Request请求对象和Response的响应对象调用其销毁方法,关闭连接,当然当初的请求对象的ServicePoint.ConnectionLimit属性也不需要设置的那么高了。
request.Abort();//销毁关闭连接
response.Close();//销毁关闭响应