1. ホーム
  2. c#

[解決済み] .NETのWebClientクラスとHTTPWebRequestクラスにはどのような違いがあるのですか?

2022-04-20 03:46:37

質問

とはどのような違いがあるのでしょうか? WebClientHttpWebRequest クラスは、.NETでは?どちらも非常によく似たことをしています。実際、なぜ1つのクラスに統合されなかったのでしょうか(メソッドや変数などが多すぎることが理由の1つかもしれませんが、.NETにはそのルールを破る他のクラスがあります)。

ありがとうございます。

解決方法は?

WebClient は、HttpWebRequest の上に構築された、最も一般的なタスクを簡略化するための、より高度な抽象化です。たとえば、HttpWebResponse からコンテンツを取得したい場合、レスポンス ストリームから読み取る必要があります。

var http = (HttpWebRequest)WebRequest.Create("http://example.com");
var response = http.GetResponse();

var stream = response.GetResponseStream();
var sr = new StreamReader(stream);
var content = sr.ReadToEnd();

WebClientでは、次のようにするだけです。 DownloadString :

var client = new WebClient();
var content = client.DownloadString("http://example.com");

using の文は、簡潔にするために両方の例から削除しました。Web リクエストオブジェクトを適切に破棄するよう、絶対に注意しなければなりません。

一般的に、WebClient は素早く汚い単純なリクエストに適しており、HttpWebRequest はリクエスト全体をより詳細に制御する必要がある場合に適しています。