データの要求Requesting Data

今日のインターネットの分散操作環境で動作するアプリケーションを開発するには、あらゆる種類のリソースからデータを取得するための効率的で使いやすい方法が必要です。Developing applications that run in the distributed operating environment of today's Internet requires an efficient, easy-to-use method for retrieving data from resources of all types. プラグ可能なプロトコルを使うと、単一のインターフェイスを使って複数のインターネット プロトコルからデータを取得するアプリケーションを開発できます。Pluggable protocols let you develop applications that use a single interface to retrieve data from multiple Internet protocols.

インターネット サーバーへのデータのアップロードとサーバーからのダウンロードUploading and Downloading Data from an Internet Server

単純な要求/応答トランザクションの場合、WebClient クラスが、インターネット サーバーとの間でデータをアップロードまたはダウンロードする最も簡単な方法を提供します。For simple request and response transactions, the WebClient class provides the easiest method for uploading data to or downloading data from an Internet server. WebClient には、ファイルのアップロードとダウンロード、ストリームの送信と受信、およびサーバーへのデータ バッファーの送信と応答の受信を行うメソッドが用意されています。WebClient provides methods for uploading and downloading files, sending and receiving streams, and sending a data buffer to the server and receiving a response. WebClient は、WebRequest および WebResponse クラスを使ってインターネット リソースへの実際の接続を行うので、登録されているどのプラグ可能プロトコルでも使用可能です。WebClient uses the WebRequest and WebResponse classes to make the actual connections to the Internet resource, so any registered pluggable protocol is available for use.

より複雑なトランザクションを行う必要があるクライアント アプリケーションは、WebRequest クラスとその子孫を使って、サーバーにデータを要求します。Client applications that need to make more complex transactions request data from servers using the WebRequest class and its descendants. WebRequest は、サーバーへの接続、要求の送信、応答の受信の詳細をカプセル化します。WebRequest encapsulates the details of connecting to the server, sending the request, and receiving the response. WebRequest は、プラグ可能なプロトコルを使うすべてのアプリケーションで使うことができるプロパティとメソッドのセットを定義している抽象クラスです。WebRequest is an abstract class that defines a set of properties and methods that are available to all applications that use pluggable protocols. WebRequest の子孫 (HttpWebRequest など) は、WebRequest によって定義されているプロパティとメソッドを、基になるプロトコルと整合性があるように実装します。Descendants of WebRequest, such as HttpWebRequest, implement the properties and methods defined by WebRequest in a way that is consistent with the underlying protocol.

WebRequest クラスは、Create メソッドに渡された URI の値を使って、作成する特定の派生クラス インスタンスを決定することで、WebRequest の子孫のプロトコル固有のインスタンスを作成します。The WebRequest class creates protocol-specific instances of WebRequest descendants, using the value of the URI passed to its Create method to determine the specific derived-class instance to create. アプリケーションは、子孫のコンストラクターを WebRequest.RegisterPrefix メソッドに登録することで、要求の処理に使う必要のある WebRequest の子孫を示します。Applications indicate which WebRequest descendant should be used to handle a request by registering the descendant's constructor with the WebRequest.RegisterPrefix method.

インターネット リソースに対する要求は、WebRequestGetResponse メソッドを呼び出すことによって行われます。A request is made to the Internet resource by calling the GetResponse method on the WebRequest. GetResponse メソッドは、WebRequest のプロパティからプロトコル固有の要求を作成し、サーバーに TCP または UDP ソケット接続を行って、要求を送信します。The GetResponse method constructs the protocol-specific request from the properties of the WebRequest, makes the TCP or UDP socket connection to the server, and sends the request. HTTP の Post 要求や FTP の Put 要求など、サーバーにデータを送信する要求の場合は、WebRequest.GetRequestStream メソッドがデータを送信するネットワーク ストリームを提供します。For requests that send data to the server, such as HTTP Post or FTP Put requests, the WebRequest.GetRequestStream method provides a network stream in which to send the data.

GetResponse メソッドは、WebRequest と一致するプロトコル固有の WebResponse を返します。The GetResponse method returns a protocol-specific WebResponse that matches the WebRequest.

WebResponse クラスも、プラグ可能なプロトコルを使うすべてのアプリケーションで使うことができるプロパティとメソッドを定義している抽象クラスです。The WebResponse class is also an abstract class that defines properties and methods that are available to all applications that use pluggable protocols. WebResponse の子孫は、基になるプロトコルのこれらのプロパティとメソッドを実装します。WebResponse descendants implement these properties and methods for the underlying protocol. たとえば、HttpWebResponse クラスは、HTTP 用の WebResponse クラスを実装します。The HttpWebResponse class, for example, implements the WebResponse class for HTTP.

サーバーから返されたデータは、WebResponse.GetResponseStream メソッドによって返されるストリームでアプリケーションに提供されます。The data returned by the server is presented to the application in the stream returned by the WebResponse.GetResponseStream method. 次の例で示すように、他のストリームと同じようにこのストリームを使うことができます。You can use this stream like any other, as shown in the following example.

StreamReader sr =  
   new StreamReader(resp.GetResponseStream(), Encoding.ASCII);  
Dim sr As StreamReader  
sr = New StreamReader(resp.GetResponseStream(), Encoding.ASCII)  

関連項目See also