最近,当我使用HttWebRequest
验证项目中的timeout
和ReadWriteTimeout
函数时,遇到了一个严重的问题。
有两个部分代码,第一个抛出
未处理的异常: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
默认是正确的吗?但是我转过头了。