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