.NETのWebClientクラスでタイムアウトを変更する

提供: MonoBook
2020年6月10日 (水) 07:38時点におけるAdministrator (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

.NET FrameworkのWebClientクラスは手軽で便利だが、その代償としてタイムアウトの設定ができなかったり、クッキーの制御ができなかったり何かと痒いところに手が届かなかったりする。そのような場合はWebClientクラスを継承することで旧来のWebRequestクラスとWebResponseクラスにアクセスすることが出来るようになる。

タイムアウトを変更できるようにする[編集 | ソースを編集]

タイムアウトを変更できるようにする例を示す。

using System;
using System.Net;

public class MyWebClient : System.Net.WebClient
{
    public int Timeout { get; set; } = 30 * 1000;

    protected override WebRequest GetWebRequest(Uri address)
    {
        var w = base.GetWebRequest(address);
        w.Timeout = Timeout;
        return w;
    }
}