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....
}