httpWebRequest.GetResponse()方法中的操作超时异常是否关闭连接
本文关键字:异常 超时 是否 连接 操作 GetResponse 方法 httpWebRequest | 更新日期: 2023-09-27 18:00:20
我的问题可能很傻,但需要答案。据我所知,每当HttpWebRequest.GetResponse()
方法中出现"操作超时"异常时,连接就会关闭并释放。如果它不是真的,那么它是如何工作的?我试着用谷歌搜索这个,但没有得到答案。
EDIT:在这种情况下,它是一个后请求,连接已经建立,调用的URL正在服务器端处理请求,但HttpWebRequest对象正在等待响应,并且在某个时候发生了异常。
我的理解是,必须调用Close方法来关闭流并释放连接。如果不这样做,可能会导致应用程序连接不足。如果您不确定,您可以始终在Close
方法或HttpWebRequest.GetResponse()
周围放置try/catch块。
我不完全确定,但看起来Operation TimedOut
异常可能会使底层连接通道出错;导致之后的所有请求都以相同的异常结束。
根据MSDN文档
您必须调用Close方法来关闭流并释放联系否则可能会导致您的应用程序用完连接。
我试了一下
private static void MakeRequest()
{
WebRequest req = null;
try
{
req = WebRequest.Create("http://www.wg.net.pl");
req.Timeout = 10;
req.GetResponse();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
req.Timeout = 10000;
req.GetResponse(); // This as well results in TimeOut exception
}
}