Compartir a través de


Solicitar datos

Programar aplicaciones que se ejecuten en los entornos operativos distribuidos actuales de Internet requiere un método eficaz y sencillo de obtener datos de recursos de todos los tipos. Los protocolos conectables permiten programar aplicaciones que utilicen una única interfaz para obtener datos de diferentes protocolos de Internet.

Para transacciones de solicitud y respuesta sencillas, la clase WebClient dispone del método más sencillo para cargar y descargar datos de un servidor de Internet. WebClient dispone de métodos para cargar y descargar archivos, enviar y recibir secuencias y enviar un búfer de datos al servidor y recibir una respuesta. WebClient utiliza las clases WebRequest y WebResponse para establecer las conexiones al recurso de Internet, de manera que los protocolos conectables registrados estén disponibles para su uso. En el siguiente ejemplo se solicita una página Web y se devuelve el resultado en una secuencia.

WebClient myClient = new WebClient();
Stream response = myClient.OpenRead("https://www.contoso.com/index.htm");
// The stream data is used here.
response.Close();
[Visual Basic]
Dim myClient As WebClient = New WebClient()
Dim response As Stream = myClient.OpenRead("https://www.contoso.com/index.htm")
' The stream data is used here.
response.Close()

Las aplicaciones cliente que necesitan realizar transacciones más complejas solicitan los datos de servidores mediante la clase WebRequest y sus descendientes. WebRequest encapsula los detalles de conexión al servidor, del envío de la solicitud y de la recepción de la respuesta. WebRequest es una clase abstracta que define un conjunto de propiedades y métodos que están disponibles para todas las aplicaciones que utilizan protocolos conectables. Los descendientes de WebRequest, como HttpWebRequest, implementan las propiedades y métodos definidos por WebRequest de manera coherente con el protocolo subyacente.

La clase WebRequest crea instancias específicas para el protocolo de los descendientes de WebRequest, utilizando el valor del URI pasado a su método Create para determinar la instancia de clase derivada específica que se va a crear. Las aplicaciones indican qué descendiente de WebRequest se debe utilizar para controlar una solicitud; para ello, registran el constructor del descendiente en el método WebRequest.RegisterPrefix.

Se realiza una solicitud al recurso de Internet llamando al método GetResponse de la instancia de WebRequest. El método GetResponse construye la solicitud específica del protocolo a partir de las propiedades de la instancia de WebRequest, crea la conexión del socket TCP o UDP al servidor y envía la solicitud. Para solicitudes que envían datos al servidor, como las solicitudes Post de HTTP o Put de FTP, el método WebRequest.GetRequestStream proporciona una secuencia de red en la que se enviarán los datos.

El método GetResponse devuelve una clase WebResponse específica del protocolo que coincide con la clase WebRequest, como se muestra en el siguiente ejemplo.

WebRequest req = WebRequest.Create("https://www.contoso.com/");
WebResponse resp = req.GetResponse();
[Visual Basic]
Dim req As WebRequest = WebRequest.Create("https://www.contoso.com")
Dim resp As WebResponse = req.GetResponse()

WebResponse es una clase abstracta que define las propiedades y métodos que están disponibles para todas las aplicaciones que utilizan protocolos conectables. Los descendientes de WebResponse implementan estas propiedades y métodos para el protocolo subyacente. Por ejemplo, la clase HttpWebResponse implementa la clase WebResponse para HTTP.

Los datos que devuelve el servidor se presentan a la aplicación en la secuencia que devolvió el método WebResponse.GetResponseStream. Esta secuencia se utiliza como cualquier otra, como se muestra en el siguiente ejemplo.

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

Vea también

Acceso a Internet