「.NETのWebClientクラスでタイムアウトを変更する」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「.NET FrameworkのWebClientクラスは手軽で便利だが、その代償としてタイムアウトの設定ができなかったり、クッキーの制御ができな...」) |
Administrator (トーク | 投稿記録) |
||
(同じ利用者による、間の4版が非表示) | |||
4行目: | 4行目: | ||
タイムアウトを変更できるようにする例を示す。 | タイムアウトを変更できるようにする例を示す。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | + | 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; | |
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | } | ||
</source> | </source> | ||
− | + | [[category:.NET]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[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;
}
}