WebClient Classe

Definição

Fornece métodos comuns para enviar e receber dados de um recurso identificado por um 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
Herança
Atributos

Exemplos

O exemplo de código a seguir usa o URI de um recurso, recupera-o e exibe a resposta.

#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

Comentários

Importante

Não recomendamos que você use a WebClient classe para novo desenvolvimento. Em vez disso, use a System.Net.Http.HttpClient classe .

A WebClient classe fornece métodos comuns para enviar dados ou receber dados de qualquer recurso local, intranet ou Internet identificado por um URI.

A WebClient classe usa a WebRequest classe para fornecer acesso aos recursos. WebClient as instâncias podem acessar dados com qualquer WebRequest descendente registrado com o WebRequest.RegisterPrefix método .

Observação

Por padrão, .NET Framework dá suporte a URIs que começam com http:identificadores de esquema , https:, ftp:e file: .

A tabela a seguir descreve os métodos WebClient para carregar dados em um recurso.

Método Descrição
OpenWrite Recupera um Stream usado para enviar dados para o recurso.
OpenWriteAsync Recupera um Stream usado para enviar dados para o recurso, sem bloquear o thread de chamada.
UploadData Envia uma matriz de bytes para o recurso e retorna uma Byte matriz que contém qualquer resposta.
UploadDataAsync Envia uma Byte matriz para o recurso, sem bloquear o thread de chamada.
UploadFile Envia um arquivo local para o recurso e retorna uma Byte matriz que contém qualquer resposta.
UploadFileAsync Envia um arquivo local para o recurso, sem bloquear o thread de chamada.
UploadValues Envia um NameValueCollection para o recurso e retorna uma Byte matriz que contém qualquer resposta.
UploadValuesAsync Envia um NameValueCollection para o recurso e retorna uma Byte matriz que contém qualquer resposta, sem bloquear o thread de chamada.
UploadString Envia um String para o recurso e retorna um String que contém qualquer resposta.
UploadStringAsync Envia um String para o recurso, sem bloquear o thread de chamada.

A tabela a seguir descreve os métodos WebClient para baixar dados de um recurso.

Método Descrição
OpenRead Retorna os dados de um recurso como um Stream.
OpenReadAsync Retorna os dados de um recurso, sem bloquear o thread de chamada.
DownloadData Baixa dados de um recurso e retorna uma Byte matriz.
DownloadDataAsync Baixa dados de um recurso e retorna uma Byte matriz, sem bloquear o thread de chamada.
DownloadFile Baixa dados de um recurso para um arquivo local.
DownloadFileAsync Baixa dados de um recurso para um arquivo local, sem bloquear o thread de chamada.
DownloadString Baixa um String de um recurso e retorna um String.
DownloadStringAsync Baixa um String de um recurso, sem bloquear o thread de chamada.

Você pode usar o CancelAsync método para tentar cancelar operações assíncronas.

Uma WebClient instância não envia cabeçalhos HTTP opcionais por padrão. Se sua solicitação exigir um cabeçalho opcional, você deverá adicionar o cabeçalho à Headers coleção. Por exemplo, para reter consultas na resposta, você deve adicionar um cabeçalho user-agent. Além disso, os servidores poderão retornar 500 (Erro interno do servidor) se o cabeçalho do agente do usuário estiver ausente.

AllowAutoRedirect é definido como true em WebClient instâncias .

Notas aos Herdeiros

Classes derivadas devem chamar a implementação da classe base de WebClient para garantir que a classe derivada funcione conforme o esperado.

Construtores

WebClient()
Obsoleto.

Inicializa uma nova instância da classe WebClient.

Propriedades

AllowReadStreamBuffering
Obsoleto.

Obtém ou define um valor que indica se os dados lidos do recurso da Internet para uma instância WebClient devem ser armazenados em buffer.

AllowWriteStreamBuffering
Obsoleto.

Obtém ou define um valor que indica se os dados gravados no recurso da Internet para uma instância WebClient devem ser armazenados em buffer.

BaseAddress

Obtém ou define o URI de base para solicitações feitas por um WebClient.

CachePolicy

Obtém ou define a política de cache do aplicativo para todos os recursos obtidos por essa instância WebClient usando objetos WebRequest.

CanRaiseEvents

Obtém um valor que indica se o componente pode acionar um evento.

(Herdado de Component)
Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
Credentials

Obtém ou define as credenciais de rede que são enviadas ao host e usadas para autenticar a solicitação.

DesignMode

Obtém um valor que indica se o Component está no modo de design no momento.

(Herdado de Component)
Encoding

Obtém ou define o Encoding usado para carregar e baixar as cadeias de caracteres.

Events

Obtém a lista de manipuladores de eventos que estão anexados a este Component.

(Herdado de Component)
Headers

Obtém ou define uma coleção de pares de nome-valor do cabeçalho associados à solicitação.

IsBusy

Especifica se uma solicitação da Web está em andamento.

Proxy

Obtém ou define o proxy usado por este objeto WebClient.

QueryString

Obtém ou define uma coleção de pares de nome/valor de consulta associados à solicitação.

ResponseHeaders

Obtém uma coleção de pares de nome/valor do cabeçalho associados à resposta.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)
UseDefaultCredentials

Obtém ou define um valor Boolean que controla se o DefaultCredentials é enviado com solicitações.

Métodos

CancelAsync()

Cancela uma operação assíncrona pendente.

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Libera todos os recursos usados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo Component e opcionalmente libera os recursos gerenciados.

(Herdado de Component)
DownloadData(String)

Baixa o recurso como uma matriz Byte do URI especificado.

DownloadData(Uri)

Baixa o recurso como uma matriz Byte do URI especificado.

DownloadDataAsync(Uri)

Baixa o recurso como uma matriz Byte do URI especificado como uma operação assíncrona.

DownloadDataAsync(Uri, Object)

Baixa o recurso como uma matriz Byte do URI especificado como uma operação assíncrona.

DownloadDataTaskAsync(String)

Baixa o recurso como uma matriz Byte do URI especificado como uma operação assíncrona usando um objeto de tarefa.

DownloadDataTaskAsync(Uri)

Baixa o recurso como uma matriz Byte do URI especificado como uma operação assíncrona usando um objeto de tarefa.

DownloadFile(String, String)

Baixa o recurso com o URI especificado para um arquivo local.

DownloadFile(Uri, String)

Baixa o recurso com o URI especificado para um arquivo local.

DownloadFileAsync(Uri, String)

Baixa o recurso com o URI especificado em um arquivo local. Esse método não bloqueia o thread de chamada.

DownloadFileAsync(Uri, String, Object)

Baixa o recurso com o URI especificado em um arquivo local. Esse método não bloqueia o thread de chamada.

DownloadFileTaskAsync(String, String)

Baixa o recurso especificado para um arquivo local como uma operação assíncrona usando um objeto de tarefa.

DownloadFileTaskAsync(Uri, String)

Baixa o recurso especificado para um arquivo local como uma operação assíncrona usando um objeto de tarefa.

DownloadString(String)

Baixa o recurso solicitado como um String. O recurso a ser baixado é especificado como um String que contém o URI.

DownloadString(Uri)

Baixa o recurso solicitado como um String. O recurso a ser baixado é especificado como um Uri.

DownloadStringAsync(Uri)

Baixa o recurso especificado como um Uri. Esse método não bloqueia o thread de chamada.

DownloadStringAsync(Uri, Object)

Baixa a cadeia de caracteres especificada no recurso especificado. Esse método não bloqueia o thread de chamada.

DownloadStringTaskAsync(String)

Baixa o recurso como um String do URI especificado como uma operação assíncrona usando um objeto de tarefa.

DownloadStringTaskAsync(Uri)

Baixa o recurso como um String do URI especificado como uma operação assíncrona usando um objeto de tarefa.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetWebRequest(Uri)

Retorna um objeto WebRequest para o recurso especificado.

GetWebResponse(WebRequest)

Retorna o WebResponse para o WebRequest especificado.

GetWebResponse(WebRequest, IAsyncResult)

Retorna o WebResponse para o WebRequest especificado usando o IAsyncResult especificado.

InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
OnDownloadDataCompleted(DownloadDataCompletedEventArgs)

Aciona o evento DownloadDataCompleted.

OnDownloadFileCompleted(AsyncCompletedEventArgs)

Aciona o evento DownloadFileCompleted.

OnDownloadProgressChanged(DownloadProgressChangedEventArgs)

Aciona o evento DownloadProgressChanged.

OnDownloadStringCompleted(DownloadStringCompletedEventArgs)

Aciona o evento DownloadStringCompleted.

OnOpenReadCompleted(OpenReadCompletedEventArgs)

Aciona o evento OpenReadCompleted.

OnOpenWriteCompleted(OpenWriteCompletedEventArgs)

Aciona o evento OpenWriteCompleted.

OnUploadDataCompleted(UploadDataCompletedEventArgs)

Aciona o evento UploadDataCompleted.

OnUploadFileCompleted(UploadFileCompletedEventArgs)

Aciona o evento UploadFileCompleted.

OnUploadProgressChanged(UploadProgressChangedEventArgs)

Aciona o evento UploadProgressChanged.

OnUploadStringCompleted(UploadStringCompletedEventArgs)

Aciona o evento UploadStringCompleted.

OnUploadValuesCompleted(UploadValuesCompletedEventArgs)

Aciona o evento UploadValuesCompleted.

OnWriteStreamClosed(WriteStreamClosedEventArgs)
Obsoleto.

Aciona o evento WriteStreamClosed.

OpenRead(String)

Abre um fluxo legível para os dados baixados de um recurso com o URI especificado como um String.

OpenRead(Uri)

Abre um fluxo legível para os dados baixados de um recurso com o URI especificado como um Uri.

OpenReadAsync(Uri)

Abre um fluxo legível que contém o recurso especificado. Esse método não bloqueia o thread de chamada.

OpenReadAsync(Uri, Object)

Abre um fluxo legível que contém o recurso especificado. Esse método não bloqueia o thread de chamada.

OpenReadTaskAsync(String)

Abre um fluxo legível contendo o recurso especificado como uma operação assíncrona usando um objeto de tarefa.

OpenReadTaskAsync(Uri)

Abre um fluxo legível contendo o recurso especificado como uma operação assíncrona usando um objeto de tarefa.

OpenWrite(String)

Abre um fluxo para gravar dados para o recurso especificado.

OpenWrite(String, String)

Abre um fluxo para gravar dados para o recurso especificado, usando o método especificado.

OpenWrite(Uri)

Abre um fluxo para gravar dados para o recurso especificado.

OpenWrite(Uri, String)

Abre um fluxo para gravar dados para o recurso especificado, usando o método especificado.

OpenWriteAsync(Uri)

Abre um fluxo para gravar dados para o recurso especificado. Esse método não bloqueia o thread de chamada.

OpenWriteAsync(Uri, String)

Abre um fluxo para gravar dados para o recurso especificado. Esse método não bloqueia o thread de chamada.

OpenWriteAsync(Uri, String, Object)

Abre um fluxo para gravar dados para o recurso especificado, usando o método especificado. Esse método não bloqueia o thread de chamada.

OpenWriteTaskAsync(String)

Abre um fluxo para gravar dados no recurso especificado como uma operação assíncrona, usando um objeto de tarefa.

OpenWriteTaskAsync(String, String)

Abre um fluxo para gravar dados no recurso especificado como uma operação assíncrona, usando um objeto de tarefa.

OpenWriteTaskAsync(Uri)

Abre um fluxo para gravar dados no recurso especificado como uma operação assíncrona, usando um objeto de tarefa.

OpenWriteTaskAsync(Uri, String)

Abre um fluxo para gravar dados no recurso especificado como uma operação assíncrona, usando um objeto de tarefa.

ToString()

Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído.

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

Carrega um buffer de dados em um recurso identificado por um URI.

UploadData(String, String, Byte[])

Carrega um buffer de dados no recurso especificado, usando o método especificado.

UploadData(Uri, Byte[])

Carrega um buffer de dados em um recurso identificado por um URI.

UploadData(Uri, String, Byte[])

Carrega um buffer de dados no recurso especificado, usando o método especificado.

UploadDataAsync(Uri, Byte[])

Carrega um buffer de dados para um recurso identificado por um URI, usando o método POST. Esse método não bloqueia o thread de chamada.

UploadDataAsync(Uri, String, Byte[])

Carrega um buffer de dados em um recurso identificado por um URI, usando o método especificado. Esse método não bloqueia o thread de chamada.

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

Carrega um buffer de dados em um recurso identificado por um URI, usando o método e o token de identificação especificados.

UploadDataTaskAsync(String, Byte[])

Faz upload de um buffer de dados que contém uma matriz Byte para o URI especificado como uma operação assíncrona, usando um objeto de tarefa.

UploadDataTaskAsync(String, String, Byte[])

Faz upload de um buffer de dados que contém uma matriz Byte para o URI especificado como uma operação assíncrona, usando um objeto de tarefa.

UploadDataTaskAsync(Uri, Byte[])

Faz upload de um buffer de dados que contém uma matriz Byte para o URI especificado como uma operação assíncrona, usando um objeto de tarefa.

UploadDataTaskAsync(Uri, String, Byte[])

Faz upload de um buffer de dados que contém uma matriz Byte para o URI especificado como uma operação assíncrona, usando um objeto de tarefa.

UploadFile(String, String)

Carrega o arquivo local especificado para u recurso com o URI especificado.

UploadFile(String, String, String)

Carrega o arquivo local especificado no recurso especificado, usando o método especificado.

UploadFile(Uri, String)

Carrega o arquivo local especificado para u recurso com o URI especificado.

UploadFile(Uri, String, String)

Carrega o arquivo local especificado no recurso especificado, usando o método especificado.

UploadFileAsync(Uri, String)

Carrega o arquivo local especificado no recurso indicado usando o método POST. Esse método não bloqueia o thread de chamada.

UploadFileAsync(Uri, String, String)

Carrega o arquivo local especificado no recurso indicado usando o método POST. Esse método não bloqueia o thread de chamada.

UploadFileAsync(Uri, String, String, Object)

Carrega o arquivo local especificado no recurso indicado usando o método POST. Esse método não bloqueia o thread de chamada.

UploadFileTaskAsync(String, String)

Carrega o arquivo local especificado para um recurso como uma operação assíncrona usando um objeto de tarefa.

UploadFileTaskAsync(String, String, String)

Carrega o arquivo local especificado para um recurso como uma operação assíncrona usando um objeto de tarefa.

UploadFileTaskAsync(Uri, String)

Carrega o arquivo local especificado para um recurso como uma operação assíncrona usando um objeto de tarefa.

UploadFileTaskAsync(Uri, String, String)

Carrega o arquivo local especificado para um recurso como uma operação assíncrona usando um objeto de tarefa.

UploadString(String, String)

Carrega a cadeia de caracteres especificada no recurso especificado, usando o método POST.

UploadString(String, String, String)

Carrega a cadeia de caracteres dada no recurso indicado, usando o método especificado.

UploadString(Uri, String)

Carrega a cadeia de caracteres especificada no recurso especificado, usando o método POST.

UploadString(Uri, String, String)

Carrega a cadeia de caracteres dada no recurso indicado, usando o método especificado.

UploadStringAsync(Uri, String)

Carrega a cadeia de caracteres especificada no recurso especificado. Esse método não bloqueia o thread de chamada.

UploadStringAsync(Uri, String, String)

Carrega a cadeia de caracteres especificada no recurso especificado. Esse método não bloqueia o thread de chamada.

UploadStringAsync(Uri, String, String, Object)

Carrega a cadeia de caracteres especificada no recurso especificado. Esse método não bloqueia o thread de chamada.

UploadStringTaskAsync(String, String)

Carrega a cadeia de caracteres especificada para o recurso especificado como uma operação assíncrona usando um objeto de tarefa.

UploadStringTaskAsync(String, String, String)

Carrega a cadeia de caracteres especificada para o recurso especificado como uma operação assíncrona usando um objeto de tarefa.

UploadStringTaskAsync(Uri, String)

Carrega a cadeia de caracteres especificada para o recurso especificado como uma operação assíncrona usando um objeto de tarefa.

UploadStringTaskAsync(Uri, String, String)

Carrega a cadeia de caracteres especificada para o recurso especificado como uma operação assíncrona usando um objeto de tarefa.

UploadValues(String, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI especificado.

UploadValues(String, String, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI determinado, usando o método indicado.

UploadValues(Uri, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI especificado.

UploadValues(Uri, String, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI determinado, usando o método indicado.

UploadValuesAsync(Uri, NameValueCollection)

Carrega os dados na coleção de nome/valor especificada para o recurso identificado pelo URI especificado. Esse método não bloqueia o thread de chamada.

UploadValuesAsync(Uri, String, NameValueCollection)

Carrega os dados na coleção de nome/valor especificada no recurso identificado pelo URI determinado, usando o método indicado. Esse método não bloqueia o thread de chamada.

UploadValuesAsync(Uri, String, NameValueCollection, Object)

Carrega os dados na coleção de nome/valor especificada no recurso identificado pelo URI determinado, usando o método indicado. Esse método não bloqueia o thread de chamada e permite que o chamador passe um objeto para o método invocado quando a operação é concluída.

UploadValuesTaskAsync(String, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI determinado como uma operação assíncrona usando um objeto de tarefa.

UploadValuesTaskAsync(String, String, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI determinado como uma operação assíncrona usando um objeto de tarefa.

UploadValuesTaskAsync(Uri, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI determinado como uma operação assíncrona usando um objeto de tarefa.

UploadValuesTaskAsync(Uri, String, NameValueCollection)

Carrega a coleção de nome/valor especificada no recurso identificado pelo URI determinado como uma operação assíncrona usando um objeto de tarefa.

Eventos

Disposed

Ocorre quando o componente é disposto por uma chamada ao método Dispose().

(Herdado de Component)
DownloadDataCompleted

Ocorre quando uma operação de download de dados assíncrona é concluída.

DownloadFileCompleted

Ocorre quando uma operação de download de arquivo assíncrono é concluída.

DownloadProgressChanged

Ocorre quando uma operação de download assíncrona transfere com êxito alguns ou todos os dados.

DownloadStringCompleted

Ocorre quando uma operação de download de recurso assíncrono é concluída.

OpenReadCompleted

Ocorre quando uma operação assíncrona para abrir um fluxo que contém um recurso é concluída.

OpenWriteCompleted

Ocorre quando uma operação assíncrona para abrir um fluxo para gravar dados em um recurso é concluída.

UploadDataCompleted

Ocorre quando uma operação assíncrona de upload de dados é concluída.

UploadFileCompleted

Ocorre quando uma operação de upload de arquivo assíncrono é concluída.

UploadProgressChanged

Ocorre quando uma operação de upload assíncrona transfere com êxito alguns ou todos os dados.

UploadStringCompleted

Ocorre quando uma operação assíncrona de upload de cadeia de caracteres é concluída.

UploadValuesCompleted

Ocorre quando um upload assíncrono de uma coleção de nomes/valores é concluída.

WriteStreamClosed
Obsoleto.

Ocorre quando uma operação assíncrona para gravar dados em um recurso usando um fluxo de gravação é fechada.

Aplica-se a

Confira também