gpt4 book ai didi

c# - 何时调用 WebResponse.Close()

转载 作者:可可西里 更新时间:2023-11-01 08:05:43 26 4
gpt4 key购买 nike

WebResponse response;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 20000;
response = request.GetResponse();

request = (HttpWebRequest)WebRequest.Create(url2);
response = request.GetResponse();
}
catch(Exception ex)
{
//do something
}
finally
{
}

应该在哪里调用 response.Close()?

  • 在每次尝试 GetResponse() 之后?

  • 在最后一次 GetResponse() 尝试之后?

  • 在 finally block 中?

最佳答案

以上都不是。您应该使用 using block :

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 20000;
using (WebResponse response = request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
var result = reader.ReadToEnd();
// Do something with result
}
}
}

using block 将确保调用 Dispose 方法,无论是否有异常。 Dispose 将执行与 Close 相同的操作。

using (var d = new DisposableClass()){code;}

相当于:

DisposableClass d = null;
try
{
d = new DisposableClass();
code;
}
finally
{
if (d != null)
((IDisposable)d).Dispose();
}

关于c# - 何时调用 WebResponse.Close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com