Web请求超时处理?

Pri*_*rix 5 c# error-handling timeout webrequest

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
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中我定义了一个超时,如果碰巧超时,我怎么知道,结果是空的?

我收到任何响应类型吗?

我怎样才能确保我超时?

Jon*_*eet 10

GetResponse()会抛出一个WebException.虽然测试到底发生什么很简单- 将超时设置为1ms并尝试击中需要一段时间才能返回的任何内容.

事实上,文档明确说明了这一点:

如果超时期限在可以返回资源之前到期,则抛出WebException.