我正在使用C#中的下载管理器,我正在使用多个http请求,并且想知道如何确保连接正确关闭?
在响应流上调用Dispose是否足够?我是否也需要致电关闭? 不确定哪里可能出错,但在某些时候网站会变得没有反应。
谢谢!
答案 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.
}