HttpWebResponse - 正确处理连接

时间:2011-04-25 17:21:31

标签: c# .net httpwebrequest httpwebresponse

我正在使用C#中的下载管理器,我正在使用多个http请求,并且想知道如何确保连接正确关闭?

在响应流上调用Dispose是否足够?我是否也需要致电关闭? 不确定哪里可能出错,但在某些时候网站会变得没有反应。

谢谢!

2 个答案:

答案 0 :(得分:9)

将您的HttpWebResponse包裹在使用区块中:

using(HttpWebResponse response = request.GetResponse())
{
    // do stuff here
} // response object is automatically disposed of here. 

答案 1 :(得分:0)

正如Kyle所提到的,将你的HttpWebResponse包装在一个使用块中。但是如果GetResponse()抛出异常(例如,在404响应中发生),则需要在异常中获取HttpWebResponse。

HttpWebResponse webResponse = null;
try {
    webResponse = (HttpWebResponse)webRequest.GetResponse();
} catch (WebException e) {
    webResponse = (HttpWebResponse)e.Response;
    if (webResponse == null) {
        // Handle this.
    }
}    
using (webResponse) {
    // Process the response.
}