C# 捕获HttpWebRequest超时
这段代码运行得很好,但有时请求没有得到响应。当请求没有得到响应时,程序将挂起,然后最后会出现超时错误,导致程序崩溃。我现在要做的就是捕捉超时错误,以便处理它,但似乎没有任何东西捕捉到它。很可能是在C# 捕获HttpWebRequest超时,c#,httpwebrequest,timeout,webrequest,httpwebresponse,C#,Httpwebrequest,Timeout,Webrequest,Httpwebresponse,这段代码运行得很好,但有时请求没有得到响应。当请求没有得到响应时,程序将挂起,然后最后会出现超时错误,导致程序崩溃。我现在要做的就是捕捉超时错误,以便处理它,但似乎没有任何东西捕捉到它。很可能是在GetRequestStream()中超时。。特别声明,如果请求的超时期限到期,它可能会抛出WebException 因此,在try/catch中包含这段代码,您应该能够捕获它 它很可能在GetRequestStream()中超时。特别声明,如果请求的超时期限到期,它可能会抛出WebException
GetRequestStream()中超时。
。特别声明,如果请求的超时期限到期,它可能会抛出WebException
因此,在try/catch中包含这段代码,您应该能够捕获它 它很可能在
GetRequestStream()
中超时。特别声明,如果请求的超时期限到期,它可能会抛出WebException
因此,在try/catch中包含这段代码,您应该能够捕获它
我想不管发生什么,超时时间都是“5000”。
如果你告诉它“超时为5秒”,它会在放弃之前尝试5秒。
我想不管发生什么,超时时间都是“5000”。
如果你告诉它“超时是5秒”,它会在放弃之前尝试5秒。这是一个旧线程,但我今天也遇到了这个问题 我没有意识到的是,如果你有一个web服务,比如说,试图写入一个被锁定的文件。。。然后将代码放在一个简单的
try..catch
中是不够的
您必须有一个专门处理WebExceptions
的catch
try { ... }
catch (System.Net.WebException sne)
{
MessageBox.Show(req.Timeout.ToString());
}
我一直认为WebException
是Exception
的一种类型,因此这些异常会被这个catch
处理程序捕获:
try
{
// Run your web service code
}
catch (WebException ex)
{
// Handle a WebException, such as trying to write to a "locked" file on the network
}
catch (Exception ex)
{
// Handle a regular Exception
}
没有
因此,为了避免代码抛出“请求超时”消息,而不知道是什么导致了这些消息,请记住添加第二个捕获
处理程序
顺便说一句,在我的上,下面是我推荐的代码,它查找异常,并在响应头中返回它们:
catch (Exception ex)
{
// Handle a regular Exception
}
这是一个老话题,但我今天也谈到了这个问题 我没有意识到的是,如果你有一个web服务,比如说,试图写入一个被锁定的文件。。。然后将代码放在一个简单的
try..catch
中是不够的
您必须有一个专门处理WebExceptions
的catch
try { ... }
catch (System.Net.WebException sne)
{
MessageBox.Show(req.Timeout.ToString());
}
我一直认为WebException
是Exception
的一种类型,因此这些异常会被这个catch
处理程序捕获:
try
{
// Run your web service code
}
catch (WebException ex)
{
// Handle a WebException, such as trying to write to a "locked" file on the network
}
catch (Exception ex)
{
// Handle a regular Exception
}
没有
因此,为了避免代码抛出“请求超时”消息,而不知道是什么导致了这些消息,请记住添加第二个捕获
处理程序
顺便说一句,在我的上,下面是我推荐的代码,它查找异常,并在响应头中返回它们:
catch (Exception ex)
{
// Handle a regular Exception
}