ウェブページからhtmlをダウンロードしようとしていますが、10秒後に辞退したいと思います。以下のコードはテキストを正常にダウンロードしますが、10秒以上かかることがあります。タイムアウトが設定されていますが、それは時間がかかるStreamReadingです。接続を閉じたまま10秒後に処理を停止する最善の方法は何ですか?タイムアウトのあるファイルをダウンロード
req.GetResponse()が10秒を超えると、wr.GetResponseStream()の読み込みに時間がかかることがあります。また、すべての接続が正しく閉じられていることを確認したい。
コード:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Timeout = 10000;
req.ReadWriteTimeout = 10000;
using (WebResponse wr = req.GetResponse())
{
Console.WriteLine("A: " + DateTime.Now.ToString(" HH:mm:ss:fff"));
using (StreamReader sr = new StreamReader(wr.GetResponseStream(), true))
{
Console.WriteLine("B: " + DateTime.Now.ToString(" HH:mm:ss:fff"));
var b = sr.ReadToEnd();
Console.WriteLine("C: " + DateTime.Now.ToString(" HH:mm:ss:fff"));
}
}
サンプル出力:
A: 20:04:36:522
B: 20:04:36:522
C: 20:04:54:337
Elapsed Time: ~18 Seconds
「C#の:」を使用してタイトルを接頭辞ないで下さいとな。それがタグのためのものです。 –