为什么HttpWebRequest有时会抛出OperationCanceledException或WebException.timeout?

时间:2019-03-14 04:10:04

标签: c# httpwebrequest

最近,当我使用HttWebRequest验证项目中的timeoutReadWriteTimeout函数时,遇到了一个严重的问题。

有两个部分代码,第一个抛出

  

未处理的异常:System.Net.WebException:操作已超时。      在System.Net.HttpWebRequest.GetResponse()

HttpWebRequest request = (HttpWebRequest) WebRequest.Create("https://www.stackoverflow.com");
request.Timeout = 5000;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();

HttpWebRequest request2 = (HttpWebRequest) WebRequest.Create("https://www.stackoverflow.com");
request2.Timeout = 1;
 HttpWebResponse response2 = (HttpWebResponse) request2.GetResponse();

然后下一节代码

  

未处理的异常:System.OperationCanceledException:操作已取消。      在System.Net.HttpWebRequest.GetResponse()

HttpWebRequest request = (HttpWebRequest) WebRequest.Create("https://www.stackoverflow.com");
request.Timeout = 5000;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();

request = (HttpWebRequest) WebRequest.Create("https://www.stackoverflow.com");
request.Timeout = 1;
response = (HttpWebResponse) request.GetResponse();

我很困惑为什么它会引发不同的异常?

我猜一个可能的原因是keep-alive默认是正确的吗?但是我转过头了。

0 个答案:

没有答案