WebClient Clase

Definición

Proporciona métodos comunes para enviar y recibir datos de un recurso identificado por un URI.

public ref class WebClient : System::ComponentModel::Component
public ref class WebClient sealed : System::ComponentModel::Component
public class WebClient : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class WebClient : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public class WebClient : System.ComponentModel.Component
type WebClient = class
    inherit Component
[<System.Runtime.InteropServices.ComVisible(true)>]
type WebClient = class
    inherit Component
Public Class WebClient
Inherits Component
Public NotInheritable Class WebClient
Inherits Component
Herencia
Atributos

Ejemplos

En el ejemplo de código siguiente se toma el URI de un recurso, se recupera y se muestra la respuesta.

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::IO;
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args == nullptr || args->Length == 1 )
   {
      throw gcnew ApplicationException( "Specify the URI of the resource to retrieve." );
   }

   WebClient^ client = gcnew WebClient;
   
   // Add a user agent header in case the 
   // requested URI contains a query.
   client->Headers->Add( "user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)" );
   Stream^ data = client->OpenRead( args[ 1 ] );
   StreamReader^ reader = gcnew StreamReader( data );
   String^ s = reader->ReadToEnd();
   Console::WriteLine( s );
   data->Close();
   reader->Close();
   delete client;
}

using System;
using System.Net;
using System.IO;

public class Test
{
    public static void Main(string[] args)
    {
        if (args == null || args.Length == 0)
        {
            throw new ApplicationException("Specify the URI of the resource to retrieve.");
        }
        using WebClient client = new WebClient();

        // Add a user agent header in case the
        // requested URI contains a query.

        client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

        using Stream data = client.OpenRead(args[0]);
        using StreamReader reader = new StreamReader(data);
        string s = reader.ReadToEnd();
        Console.WriteLine(s);
    }
}
Imports System.Net
Imports System.IO



Public Class Test
    
    Public Shared Sub Main(args() As String)
        If args Is Nothing OrElse args.Length = 0 Then
            Throw New ApplicationException("Specify the URI of the resource to retrieve.")
        End If
        Using client As New WebClient()
            
            ' Add a user agent header in case the 
            ' requested URI contains a query.
            client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)")
            
            Using data As Stream = client.OpenRead(args(0))
                Using reader As New StreamReader(data)
                    Dim s As String = reader.ReadToEnd()
                    Console.WriteLine(s)
                End Using
            End Using
        End Using
    End Sub
End Class

Comentarios

Cautela

WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.

La clase WebClient proporciona métodos comunes para enviar o recibir datos de cualquier recurso local, intranet o Internet identificado por un URI.

La clase WebClient usa la clase WebRequest para proporcionar acceso a los recursos. WebClient instancias pueden acceder a los datos con cualquier descendiente WebRequest registrado con el método WebRequest.RegisterPrefix.

Nota

De forma predeterminada, .NET Framework admite identificadores URI que comienzan por http:, https:, ftp:y file: identificadores de esquema.

En la tabla siguiente se describen WebClient métodos para cargar datos en un recurso.

Método Descripción
OpenWrite Recupera un Stream usado para enviar datos al recurso.
OpenWriteAsync Recupera un Stream usado para enviar datos al recurso, sin bloquear el subproceso que llama.
UploadData Envía una matriz de bytes al recurso y devuelve una matriz de Byte que contiene cualquier respuesta.
UploadDataAsync Envía una matriz Byte al recurso, sin bloquear el subproceso que llama.
UploadFile Envía un archivo local al recurso y devuelve una matriz Byte que contiene cualquier respuesta.
UploadFileAsync Envía un archivo local al recurso, sin bloquear el subproceso que llama.
UploadValues Envía un NameValueCollection al recurso y devuelve una matriz de Byte que contiene cualquier respuesta.
UploadValuesAsync Envía un NameValueCollection al recurso y devuelve una matriz de Byte que contiene cualquier respuesta, sin bloquear el subproceso que realiza la llamada.
UploadString Envía un String al recurso y devuelve un String que contiene cualquier respuesta.
UploadStringAsync Envía un String al recurso, sin bloquear el subproceso que llama.

En la tabla siguiente se describen WebClient métodos para descargar datos de un recurso.

Método Descripción
OpenRead Devuelve los datos de un recurso como un Stream.
OpenReadAsync Devuelve los datos de un recurso, sin bloquear el subproceso que realiza la llamada.
DownloadData Descarga datos de un recurso y devuelve una matriz Byte.
DownloadDataAsync Descarga datos de un recurso y devuelve una matriz de Byte, sin bloquear el subproceso que realiza la llamada.
DownloadFile Descarga datos de un recurso en un archivo local.
DownloadFileAsync Descarga datos de un recurso a un archivo local, sin bloquear el subproceso que llama.
DownloadString Descarga un String de un recurso y devuelve un String.
DownloadStringAsync Descarga un String de un recurso, sin bloquear el subproceso que llama.

Puede usar el método CancelAsync para intentar cancelar operaciones asincrónicas.

Una instancia de WebClient no envía encabezados HTTP opcionales de forma predeterminada. Si la solicitud requiere un encabezado opcional, debe agregar el encabezado a la colección Headers. Por ejemplo, para conservar las consultas en la respuesta, debe agregar un encabezado user-agent. Además, los servidores pueden devolver 500 (error interno del servidor) si falta el encabezado del agente de usuario.

AllowAutoRedirect se establece en true en instancias de WebClient.

Notas a los desarrolladores de herederos

Las clases derivadas deben llamar a la implementación de clase base de WebClient para asegurarse de que la clase derivada funciona según lo previsto.

Constructores

WebClient()
Obsoletos.

Inicializa una nueva instancia de la clase WebClient.

Propiedades

AllowReadStreamBuffering
Obsoletos.

Obtiene o establece un valor que indica si se van a almacenar en búfer los datos leídos del recurso de Internet para una instancia de WebClient.

AllowWriteStreamBuffering
Obsoletos.

Obtiene o establece un valor que indica si se van a almacenar en búfer los datos escritos en el recurso de Internet para una instancia de WebClient.

BaseAddress

Obtiene o establece el URI base para las solicitudes realizadas por un WebClient.

CachePolicy

Obtiene o establece la directiva de caché de la aplicación para los recursos obtenidos por esta instancia de WebClient mediante WebRequest objetos.

CanRaiseEvents

Obtiene un valor que indica si el componente puede generar un evento.

(Heredado de Component)
Container

Obtiene el IContainer que contiene el Component.

(Heredado de Component)
Credentials

Obtiene o establece las credenciales de red que se envían al host y se usan para autenticar la solicitud.

DesignMode

Obtiene un valor que indica si el Component está actualmente en modo de diseño.

(Heredado de Component)
Encoding

Obtiene o establece el Encoding usado para cargar y descargar cadenas.

Events

Obtiene la lista de controladores de eventos que están asociados a este Component.

(Heredado de Component)
Headers

Obtiene o establece una colección de pares de nombre y valor de encabezado asociados a la solicitud.

IsBusy

Obtiene si una solicitud web está en curso.

Proxy

Obtiene o establece el proxy utilizado por este objeto WebClient.

QueryString

Obtiene o establece una colección de pares de nombre y valor de consulta asociados a la solicitud.

ResponseHeaders

Obtiene una colección de pares de nombre y valor de encabezado asociados a la respuesta.

Site

Obtiene o establece el ISite del Component.

(Heredado de Component)
UseDefaultCredentials

Obtiene o establece un valor de Boolean que controla si el DefaultCredentials se envían con solicitudes.

Métodos

CancelAsync()

Cancela una operación asincrónica pendiente.

CreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar un proxy usado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos usados por el Component.

(Heredado de Component)
Dispose(Boolean)

Libera los recursos no administrados usados por el Component y, opcionalmente, libera los recursos administrados.

(Heredado de Component)
DownloadData(String)

Descarga el recurso como una matriz de Byte del URI especificado.

DownloadData(Uri)

Descarga el recurso como una matriz de Byte del URI especificado.

DownloadDataAsync(Uri)

Descarga el recurso como una matriz Byte del URI especificado como una operación asincrónica.

DownloadDataAsync(Uri, Object)

Descarga el recurso como una matriz Byte del URI especificado como una operación asincrónica.

DownloadDataTaskAsync(String)

Descarga el recurso como una matriz de Byte del URI especificado como una operación asincrónica mediante un objeto de tarea.

DownloadDataTaskAsync(Uri)

Descarga el recurso como una matriz de Byte del URI especificado como una operación asincrónica mediante un objeto de tarea.

DownloadFile(String, String)

Descarga el recurso con el URI especificado en un archivo local.

DownloadFile(Uri, String)

Descarga el recurso con el URI especificado en un archivo local.

DownloadFileAsync(Uri, String)

Descarga, en un archivo local, el recurso con el URI especificado. Este método no bloquea el subproceso que realiza la llamada.

DownloadFileAsync(Uri, String, Object)

Descarga, en un archivo local, el recurso con el URI especificado. Este método no bloquea el subproceso que realiza la llamada.

DownloadFileTaskAsync(String, String)

Descarga el recurso especificado en un archivo local como una operación asincrónica mediante un objeto de tarea.

DownloadFileTaskAsync(Uri, String)

Descarga el recurso especificado en un archivo local como una operación asincrónica mediante un objeto de tarea.

DownloadString(String)

Descarga el recurso solicitado como un String. El recurso que se va a descargar se especifica como un String que contiene el URI.

DownloadString(Uri)

Descarga el recurso solicitado como un String. El recurso que se va a descargar se especifica como un Uri.

DownloadStringAsync(Uri)

Descarga el recurso especificado como un Uri. Este método no bloquea el subproceso que realiza la llamada.

DownloadStringAsync(Uri, Object)

Descarga la cadena especificada en el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

DownloadStringTaskAsync(String)

Descarga el recurso como un String del URI especificado como una operación asincrónica mediante un objeto de tarea.

DownloadStringTaskAsync(Uri)

Descarga el recurso como un String del URI especificado como una operación asincrónica mediante un objeto de tarea.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetService(Type)

Devuelve un objeto que representa un servicio proporcionado por el Component o por su Container.

(Heredado de Component)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetWebRequest(Uri)

Devuelve un objeto WebRequest para el recurso especificado.

GetWebResponse(WebRequest)

Devuelve el WebResponse del WebRequestespecificado.

GetWebResponse(WebRequest, IAsyncResult)

Devuelve el WebResponse del WebRequest especificado mediante el IAsyncResultespecificado.

InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
OnDownloadDataCompleted(DownloadDataCompletedEventArgs)

Genera el evento DownloadDataCompleted.

OnDownloadFileCompleted(AsyncCompletedEventArgs)

Genera el evento DownloadFileCompleted.

OnDownloadProgressChanged(DownloadProgressChangedEventArgs)

Genera el evento DownloadProgressChanged.

OnDownloadStringCompleted(DownloadStringCompletedEventArgs)

Genera el evento DownloadStringCompleted.

OnOpenReadCompleted(OpenReadCompletedEventArgs)

Genera el evento OpenReadCompleted.

OnOpenWriteCompleted(OpenWriteCompletedEventArgs)

Genera el evento OpenWriteCompleted.

OnUploadDataCompleted(UploadDataCompletedEventArgs)

Genera el evento UploadDataCompleted.

OnUploadFileCompleted(UploadFileCompletedEventArgs)

Genera el evento UploadFileCompleted.

OnUploadProgressChanged(UploadProgressChangedEventArgs)

Genera el evento UploadProgressChanged.

OnUploadStringCompleted(UploadStringCompletedEventArgs)

Genera el evento UploadStringCompleted.

OnUploadValuesCompleted(UploadValuesCompletedEventArgs)

Genera el evento UploadValuesCompleted.

OnWriteStreamClosed(WriteStreamClosedEventArgs)
Obsoletos.

Genera el evento WriteStreamClosed.

OpenRead(String)

Abre una secuencia legible para los datos descargados de un recurso con el URI especificado como un String.

OpenRead(Uri)

Abre una secuencia legible para los datos descargados de un recurso con el URI especificado como un Uri.

OpenReadAsync(Uri)

Abre una secuencia legible que contiene el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

OpenReadAsync(Uri, Object)

Abre una secuencia legible que contiene el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

OpenReadTaskAsync(String)

Abre una secuencia legible que contiene el recurso especificado como una operación asincrónica mediante un objeto de tarea.

OpenReadTaskAsync(Uri)

Abre una secuencia legible que contiene el recurso especificado como una operación asincrónica mediante un objeto de tarea.

OpenWrite(String)

Abre una secuencia para escribir datos en el recurso especificado.

OpenWrite(String, String)

Abre una secuencia para escribir datos en el recurso especificado mediante el método especificado.

OpenWrite(Uri)

Abre una secuencia para escribir datos en el recurso especificado.

OpenWrite(Uri, String)

Abre una secuencia para escribir datos en el recurso especificado mediante el método especificado.

OpenWriteAsync(Uri)

Abre una secuencia para escribir datos en el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

OpenWriteAsync(Uri, String)

Abre una secuencia para escribir datos en el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

OpenWriteAsync(Uri, String, Object)

Abre una secuencia para escribir datos en el recurso especificado mediante el método especificado. Este método no bloquea el subproceso que realiza la llamada.

OpenWriteTaskAsync(String)

Abre una secuencia para escribir datos en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

OpenWriteTaskAsync(String, String)

Abre una secuencia para escribir datos en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

OpenWriteTaskAsync(Uri)

Abre una secuencia para escribir datos en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

OpenWriteTaskAsync(Uri, String)

Abre una secuencia para escribir datos en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

ToString()

Devuelve un String que contiene el nombre del Component, si existe. Este método no se debe invalidar.

(Heredado de Component)
UploadData(String, Byte[])

Carga un búfer de datos en un recurso identificado por un URI.

UploadData(String, String, Byte[])

Carga un búfer de datos en el recurso especificado mediante el método especificado.

UploadData(Uri, Byte[])

Carga un búfer de datos en un recurso identificado por un URI.

UploadData(Uri, String, Byte[])

Carga un búfer de datos en el recurso especificado mediante el método especificado.

UploadDataAsync(Uri, Byte[])

Carga un búfer de datos en un recurso identificado por un URI mediante el método POST. Este método no bloquea el subproceso que realiza la llamada.

UploadDataAsync(Uri, String, Byte[])

Carga un búfer de datos en un recurso identificado por un URI mediante el método especificado. Este método no bloquea el subproceso que realiza la llamada.

UploadDataAsync(Uri, String, Byte[], Object)

Carga un búfer de datos en un recurso identificado por un URI mediante el método especificado y el token de identificación.

UploadDataTaskAsync(String, Byte[])

Carga un búfer de datos que contiene una matriz de Byte en el URI especificado como una operación asincrónica mediante un objeto de tarea.

UploadDataTaskAsync(String, String, Byte[])

Carga un búfer de datos que contiene una matriz de Byte en el URI especificado como una operación asincrónica mediante un objeto de tarea.

UploadDataTaskAsync(Uri, Byte[])

Carga un búfer de datos que contiene una matriz de Byte en el URI especificado como una operación asincrónica mediante un objeto de tarea.

UploadDataTaskAsync(Uri, String, Byte[])

Carga un búfer de datos que contiene una matriz de Byte en el URI especificado como una operación asincrónica mediante un objeto de tarea.

UploadFile(String, String)

Carga el archivo local especificado en un recurso con el URI especificado.

UploadFile(String, String, String)

Carga el archivo local especificado en el recurso especificado mediante el método especificado.

UploadFile(Uri, String)

Carga el archivo local especificado en un recurso con el URI especificado.

UploadFile(Uri, String, String)

Carga el archivo local especificado en el recurso especificado mediante el método especificado.

UploadFileAsync(Uri, String)

Carga el archivo local especificado en el recurso especificado mediante el método POST. Este método no bloquea el subproceso que realiza la llamada.

UploadFileAsync(Uri, String, String)

Carga el archivo local especificado en el recurso especificado mediante el método POST. Este método no bloquea el subproceso que realiza la llamada.

UploadFileAsync(Uri, String, String, Object)

Carga el archivo local especificado en el recurso especificado mediante el método POST. Este método no bloquea el subproceso que realiza la llamada.

UploadFileTaskAsync(String, String)

Carga el archivo local especificado en un recurso como una operación asincrónica mediante un objeto de tarea.

UploadFileTaskAsync(String, String, String)

Carga el archivo local especificado en un recurso como una operación asincrónica mediante un objeto de tarea.

UploadFileTaskAsync(Uri, String)

Carga el archivo local especificado en un recurso como una operación asincrónica mediante un objeto de tarea.

UploadFileTaskAsync(Uri, String, String)

Carga el archivo local especificado en un recurso como una operación asincrónica mediante un objeto de tarea.

UploadString(String, String)

Carga la cadena especificada en el recurso especificado mediante el método POST.

UploadString(String, String, String)

Carga la cadena especificada en el recurso especificado mediante el método especificado.

UploadString(Uri, String)

Carga la cadena especificada en el recurso especificado mediante el método POST.

UploadString(Uri, String, String)

Carga la cadena especificada en el recurso especificado mediante el método especificado.

UploadStringAsync(Uri, String)

Carga la cadena especificada en el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

UploadStringAsync(Uri, String, String)

Carga la cadena especificada en el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

UploadStringAsync(Uri, String, String, Object)

Carga la cadena especificada en el recurso especificado. Este método no bloquea el subproceso que realiza la llamada.

UploadStringTaskAsync(String, String)

Carga la cadena especificada en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

UploadStringTaskAsync(String, String, String)

Carga la cadena especificada en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

UploadStringTaskAsync(Uri, String)

Carga la cadena especificada en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

UploadStringTaskAsync(Uri, String, String)

Carga la cadena especificada en el recurso especificado como una operación asincrónica mediante un objeto de tarea.

UploadValues(String, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado.

UploadValues(String, String, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado mediante el método especificado.

UploadValues(Uri, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado.

UploadValues(Uri, String, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado mediante el método especificado.

UploadValuesAsync(Uri, NameValueCollection)

Carga los datos de la colección name/value especificada en el recurso identificado por el URI especificado. Este método no bloquea el subproceso que realiza la llamada.

UploadValuesAsync(Uri, String, NameValueCollection)

Carga los datos de la colección name/value especificada en el recurso identificado por el URI especificado mediante el método especificado. Este método no bloquea el subproceso que realiza la llamada.

UploadValuesAsync(Uri, String, NameValueCollection, Object)

Carga los datos de la colección name/value especificada en el recurso identificado por el URI especificado mediante el método especificado. Este método no bloquea el subproceso que realiza la llamada y permite al autor de la llamada pasar un objeto al método que se invoca cuando se completa la operación.

UploadValuesTaskAsync(String, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado como una operación asincrónica mediante un objeto de tarea.

UploadValuesTaskAsync(String, String, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado como una operación asincrónica mediante un objeto de tarea.

UploadValuesTaskAsync(Uri, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado como una operación asincrónica mediante un objeto de tarea.

UploadValuesTaskAsync(Uri, String, NameValueCollection)

Carga la colección name/value especificada en el recurso identificado por el URI especificado como una operación asincrónica mediante un objeto de tarea.

Eventos

Disposed

Se produce cuando el componente se elimina mediante una llamada al método Dispose().

(Heredado de Component)
DownloadDataCompleted

Se produce cuando se completa una operación de descarga de datos asincrónica.

DownloadFileCompleted

Se produce cuando se completa una operación de descarga de archivos asincrónica.

DownloadProgressChanged

Se produce cuando una operación de descarga asincrónica transfiere correctamente algunos o todos los datos.

DownloadStringCompleted

Se produce cuando se completa una operación asincrónica de descarga de recursos.

OpenReadCompleted

Se produce cuando se completa una operación asincrónica para abrir una secuencia que contiene un recurso.

OpenWriteCompleted

Se produce cuando se completa una operación asincrónica para abrir una secuencia para escribir datos en un recurso.

UploadDataCompleted

Se produce cuando se completa una operación asincrónica de carga de datos.

UploadFileCompleted

Se produce cuando se completa una operación asincrónica de carga de archivos.

UploadProgressChanged

Se produce cuando una operación de carga asincrónica transfiere correctamente algunos o todos los datos.

UploadStringCompleted

Se produce cuando se completa una operación asincrónica de carga de cadenas.

UploadValuesCompleted

Se produce cuando se completa una carga asincrónica de una colección name/value.

WriteStreamClosed
Obsoletos.

Se produce cuando se cierra una operación asincrónica para escribir datos en un recurso mediante una secuencia de escritura.

Se aplica a

Consulte también