0
我知道WebRequest.Timeout
设置了请求的超时时间,但似乎只有在服务器开始响应之前才会执行。WebRequest设置超时响应不完全
如果我想超时服务器发送一些数据然后停止响应,应该怎么做?
我知道WebRequest.Timeout
设置了请求的超时时间,但似乎只有在服务器开始响应之前才会执行。WebRequest设置超时响应不完全
如果我想超时服务器发送一些数据然后停止响应,应该怎么做?
您可以使用...Async
版本的读取调用,并调用Task.Wait(int)
与超时:
var response = request.GetResponse();
var responseStream = response.GetResponseStream();
using (StreamReader reader = new StreamReader(responseStream)) {
var task = reader.ReadLineAsync();
if (!task.Wait(1000)) {
throw new Exception("Timed out after 1 sec.");
}
string line = task.Result;
// etc....
}