0

我知道WebRequest.Timeout为请求设置了超时,但这似乎只在服务器开始响应之前强制执行。

如果我想在服务器发送一些数据然后停止响应时超时怎么办?

4

1 回答 1

0

您可以使用...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....
}
于 2016-07-14T22:27:07.753 回答