「.NETのWebClientクラスでタイムアウトを変更する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「.NET FrameworkのWebClientクラスは手軽で便利だが、その代償としてタイムアウトの設定ができなかったり、クッキーの制御ができな...」)
 
 
(同じ利用者による、間の4版が非表示)
4行目: 4行目:
 
タイムアウトを変更できるようにする例を示す。
 
タイムアウトを変更できるようにする例を示す。
 
<source lang="csharp">
 
<source lang="csharp">
    using System;
+
using System;
    using System.Net;
+
using System.Net;
  
    public class MyWebClient : System.Net.WebClient
+
public class MyWebClient : System.Net.WebClient
 +
{
 +
    public int Timeout { get; set; } = 30 * 1000;
 +
 
 +
    protected override WebRequest GetWebRequest(Uri address)
 
     {
 
     {
         public int Timeout { get; set; } = 30 * 1000;
+
         var w = base.GetWebRequest(address);
 
+
        w.Timeout = Timeout;
        protected override WebRequest GetWebRequest(Uri address)
+
        return w;
        {
 
            var w = base.GetWebRequest(address);
 
            w.Timeout = Timeout;
 
            return w;
 
        }
 
 
     }
 
     }
 +
}
 
</source>
 
</source>
  
==関連項目==
+
[[category:.NET]]
 
 
==参考文献==
 
{{reflist}}
 
 
 
{{stub}}
 
 
 
 
[[category:.NET Framework]]
 
[[category:.NET Framework]]

2020年6月10日 (水) 07:38時点における最新版

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