データの要求
今日のインターネットの分散オペレーティング環境で実行されるアプリケーションの開発では、すべての種類のリソースからデータを取得できる効率的で使いやすいメソッドが必要です。プラグ可能なプロトコルを使用すると、複数のインターネット プロトコルからのデータを 1 つのインターフェイスで取得するアプリケーションを開発できます。
インターネット サーバーからのデータのアップロードとダウンロード
単純な要求/応答トランザクションの場合は、WebClient クラスによって、インターネット サーバーにデータをアップロードしたり、インターネット サーバーからデータをダウンロードしたりするための最も簡単なメソッドを提供できます。WebClient には、ファイルのアップロードやダウンロード、ストリームの送信や受信、およびサーバーへのデータ バッファの送信や応答の受信を行うためのメソッドが用意されています。WebClient は、実際には、WebRequest クラスや WebResponse クラスを使用してインターネット リソースに接続するため、登録されているプラグ可能な任意のプロトコルを使用できます。
複雑なトランザクションを作成するクライアント アプリケーションでは、WebRequest クラスとその派生クラスを使用してサーバーからデータを要求します。WebRequest は、サーバーへの接続、要求の送信、および応答の受信についての細部をカプセル化しています。WebRequest は、プラグ可能なプロトコルを使用するすべてのアプリケーションで使用できるプロパティとメソッドのセットを定義する抽象クラスです。HttpWebRequest のような WebRequest の派生クラスは、WebRequest によって定義されたプロパティやメソッドを基になるプロトコルに対応した形態で実装します。
WebRequest クラスは、作成する特定の派生クラス インスタンスを決定するために Create メソッドに渡された URI の値を使用して、WebRequest の派生クラスのプロトコル固有のインスタンスを作成します。アプリケーションでは、WebRequest の派生クラスのコンストラクタを WebRequest.RegisterPrefix メソッドに登録することにより、要求を処理するためにどの WebRequest 派生クラスを使用するかを指示します。
インターネット リソースに対する要求は、WebRequest の GetResponse メソッドを呼び出して実行します。GetResponse メソッドは、WebRequest のプロパティからプロトコル固有の要求を構築し、サーバーへの TCP または UDP ソケット接続を作成し、要求を送信します。HTTP Post 要求や FTP Put 要求のように、データをサーバーに送信する要求の場合は、WebRequest.GetRequestStream メソッドを使用して、データを送信するためのネットワーク ストリームを用意します。
GetResponse メソッドは、WebRequest に対応するプロトコル固有の WebResponse を返します。
WebResponse クラスも、プロパティおよびメソッドを定義する抽象クラスであり、プラグ可能なプロトコルを使用するすべてのアプリケーションで使用できます。WebResponse の派生クラスは、基になるプロトコルに対応したプロパティとメソッドを実装します。たとえば、HttpWebResponse クラスは、HTTP 用の WebResponse クラスを実装します。
サーバーから返されたデータは、WebResponse.GetResponseStream メソッドによって返されたストリームとしてアプリケーションに渡されます。次の例で示すように、このストリームは、他のストリームと同じように使用できます。
StreamReader sr =
new StreamReader(resp.GetResponseStream(), Encoding.ASCII);
Dim sr As StreamReader
sr = New StreamReader(resp.GetResponseStream(), Encoding.ASCII)
参照
処理手順
方法 : Web ページを要求して結果をストリームとして取得する
方法 : WebRequest に対応したプロトコル固有の WebResponse を取得する