Żądanie danychRequesting Data

Tworzenie aplikacji działających w rozproszonym środowisku operacyjnym dzisiejszej sieci Internet wymaga wydajnej, łatwej w użyciu metody do pobierania danych z zasobów wszystkich typów.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. Protokoły podłączane umożliwiają tworzenie aplikacji korzystających z jednego interfejsu do pobierania danych z wielu protokołów internetowych.Pluggable protocols let you develop applications that use a single interface to retrieve data from multiple Internet protocols.

Przekazywanie i pobieranie danych z serwera internetowegoUploading and Downloading Data from an Internet Server

W przypadku prostych transakcji żądań i odpowiedzi WebClient Klasa zapewnia najłatwą metodę przekazywania danych do lub pobierania danych z serwera internetowego.For simple request and response transactions, the WebClient class provides the easiest method for uploading data to or downloading data from an Internet server. Klient WebClient oferuje metody przekazywania i pobierania plików, wysyłania i otrzymywania strumieni oraz wysyłania bufora danych do serwera i otrzymywania odpowiedzi.WebClient provides methods for uploading and downloading files, sending and receiving streams, and sending a data buffer to the server and receiving a response. Klient WebClient używa WebRequest klas i, aby nawiązać WebResponse rzeczywiste połączenia z zasobem internetowym, tak aby wszystkie zarejestrowane protokoły podłączane były dostępne do użycia.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.

Aplikacje klienckie, które muszą wykonywać bardziej złożone transakcje żądania danych z serwerów przy użyciu klasy WebRequest i jej obiektów podrzędnych.Client applications that need to make more complex transactions request data from servers using the WebRequest class and its descendants. Żądanie WebRequest hermetyzuje szczegóły dotyczące łączenia się z serwerem, wysyłania żądania i otrzymywania odpowiedzi.WebRequest encapsulates the details of connecting to the server, sending the request, and receiving the response. WebRequest to Klasa abstrakcyjna, która definiuje zestaw właściwości i metod, które są dostępne dla wszystkich aplikacji, które korzystają z protokołów podłączanych.WebRequest is an abstract class that defines a set of properties and methods that are available to all applications that use pluggable protocols. Elementy podrzędne żądania WebRequest, takie jak HttpWebRequest , implementują właściwości i metody zdefiniowane przez WebRequest w sposób, który jest zgodny z bazowym protokołem.Descendants of WebRequest, such as HttpWebRequest, implement the properties and methods defined by WebRequest in a way that is consistent with the underlying protocol.

Klasa WebRequest tworzy wystąpienia obiektów podrzędnych żądania WebRequest zależnych od protokołu przy użyciu wartości identyfikatora URI przesłanej do metody, Create Aby określić konkretne wystąpienie klasy pochodnej do utworzenia.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. Aplikacje wskazują, które elementy podrzędne żądania WebRequest mają być używane do obsługi żądania przez zarejestrowanie konstruktora elementu podrzędnego za pomocą WebRequest.RegisterPrefix metody.Applications indicate which WebRequest descendant should be used to handle a request by registering the descendant's constructor with the WebRequest.RegisterPrefix method.

Do zasobu internetowego jest wykonywane żądanie wywołujące GetResponse metodę w żądaniu WebRequest.A request is made to the Internet resource by calling the GetResponse method on the WebRequest. Metoda GetResponse konstruuje żądanie specyficzne dla protokołu ze wszystkich właściwości żądania WebRequest, sprawia, że połączenie TCP lub UDP gniazda z serwerem i wysyła żądanie.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. W przypadku żądań wysyłających dane do serwera, takich jak żądania HTTP post lub FTP Put , WebRequest.GetRequestStream Metoda zawiera strumień sieciowy, do którego mają być wysyłane dane.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.

Metoda GetResponse zwraca WebResponse specyficzny dla protokołu, który jest zgodny z żądaniem WebRequest.The GetResponse method returns a protocol-specific WebResponse that matches the WebRequest.

Klasa WebResponse jest również klasą abstrakcyjną, która definiuje właściwości i metody, które są dostępne dla wszystkich aplikacji, które korzystają z protokołów podłączanych.The WebResponse class is also an abstract class that defines properties and methods that are available to all applications that use pluggable protocols. Elementy podrzędne WebResponse implementują te właściwości i metody dla bazowego protokołu.WebResponse descendants implement these properties and methods for the underlying protocol. HttpWebResponseKlasa, na przykład implementuje klasę WebResponse dla protokołu HTTP.The HttpWebResponse class, for example, implements the WebResponse class for HTTP.

Dane zwrócone przez serwer są prezentowane aplikacji w strumieniu zwracanym przez WebResponse.GetResponseStream metodę.The data returned by the server is presented to the application in the stream returned by the WebResponse.GetResponseStream method. Tego strumienia można użyć jak dowolnego innego, jak pokazano w poniższym przykładzie.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)  

Zobacz teżSee also