.NETでHttpWebRequestを連続で使用するときの注意点

.NETでHttpRequestを連続送信する事があり、その際に「操作はタイムアウトになりました」と出てその後の通信ができなくなることがあった。

ここにも書いてある通り、3回目からエラーになることから同じ現象と思われる。

ということで、以下のように書いて動作することを確認した。

HttpWebRequest req = null;
try
{
    // リクエスト開始
    req = (HttpWebRequest)WebRequest.Create(url);
    using (var res = req.GetResponse())
    {
        var s = res.GetResponseStream();
        using (var reader = new StreamReader(s))
        {
            System.Diagnostics.Debug.WriteLine(reader.ReadToEnd());
        }
    }
}
finally
{
    if (req != null)
    {
        // 連続呼び出しでエラーになる場合があるのでその対策
        req.Abort();
    }
}

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です