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