WebClient Classe

Definição

Fornece métodos comuns para enviar dados e receber dados de um recurso identificado por um URI.

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
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;
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);
    }
}

Comentários

Atenção

WebRequest, HttpWebRequest, ServicePointe WebClient estão obsoletos e você não deve usá-los para um novo desenvolvimento. Em vez disso, use HttpClient.

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

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

Nota

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

A tabela a seguir descreve WebClient métodos 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 matriz de Byte que contém qualquer resposta.
UploadDataAsync Envia uma matriz de Byte para o recurso, sem bloquear o thread de chamada.
UploadFile Envia um arquivo local para o recurso e retorna uma matriz de Byte 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 matriz de Byte que contém qualquer resposta.
UploadValuesAsync Envia um NameValueCollection para o recurso e retorna uma matriz de Byte 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 WebClient métodos 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 matriz de Byte.
DownloadDataAsync Baixa dados de um recurso e retorna uma matriz de Byte, 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 método CancelAsync para tentar cancelar operações assíncronas.

Uma instância de WebClient 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 à coleção Headers. Por exemplo, para reter consultas na resposta, você deve adicionar um cabeçalho de agente de usuário. 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 está definido como true em instâncias de WebClient.

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 devem ser armazenados em buffer para uma instância de WebClient.

AllowWriteStreamBuffering
Obsoleto.

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

BaseAddress

Obtém ou define o URI 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 do WebClient usando objetos WebRequest.

CanRaiseEvents

Obtém um valor que indica se o componente pode gerar 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 para o host e usadas para autenticar a solicitação.

DesignMode

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

(Herdado de Component)
Encoding

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

Events

Obtém a lista de manipuladores de eventos anexados a este Component.

(Herdado de Component)
Headers

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

IsBusy

Obtém 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 nome/valor de consulta associados à solicitação.

ResponseHeaders

Obtém uma coleção de pares nome/valor de 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 os DefaultCredentials são enviados 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 de Byte do URI especificado.

DownloadData(Uri)

Baixa o recurso como uma matriz de 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 em um arquivo local.

DownloadFile(Uri, String)

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

DownloadFileAsync(Uri, String)

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

DownloadFileAsync(Uri, String, Object)

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

DownloadFileTaskAsync(String, String)

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

DownloadFileTaskAsync(Uri, String)

Baixa o recurso especificado em 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 para o 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 tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou por 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 do WebRequestespecificado.

GetWebResponse(WebRequest, IAsyncResult)

Retorna o WebResponse do WebRequest especificado usando o IAsyncResultespecificado.

InitializeLifetimeService()
Obsoleto.

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

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
OnDownloadDataCompleted(DownloadDataCompletedEventArgs)

Gera o evento DownloadDataCompleted.

OnDownloadFileCompleted(AsyncCompletedEventArgs)

Gera o evento DownloadFileCompleted.

OnDownloadProgressChanged(DownloadProgressChangedEventArgs)

Gera o evento DownloadProgressChanged.

OnDownloadStringCompleted(DownloadStringCompletedEventArgs)

Gera o evento DownloadStringCompleted.

OnOpenReadCompleted(OpenReadCompletedEventArgs)

Gera o evento OpenReadCompleted.

OnOpenWriteCompleted(OpenWriteCompletedEventArgs)

Gera o evento OpenWriteCompleted.

OnUploadDataCompleted(UploadDataCompletedEventArgs)

Gera o evento UploadDataCompleted.

OnUploadFileCompleted(UploadFileCompletedEventArgs)

Gera o evento UploadFileCompleted.

OnUploadProgressChanged(UploadProgressChangedEventArgs)

Gera o evento UploadProgressChanged.

OnUploadStringCompleted(UploadStringCompletedEventArgs)

Gera o evento UploadStringCompleted.

OnUploadValuesCompleted(UploadValuesCompletedEventArgs)

Gera o evento UploadValuesCompleted.

OnWriteStreamClosed(WriteStreamClosedEventArgs)
Obsoleto.

Gera 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 que contém o recurso especificado como uma operação assíncrona usando um objeto de tarefa.

OpenReadTaskAsync(Uri)

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

OpenWrite(String)

Abre um fluxo para gravar dados no recurso especificado.

OpenWrite(String, String)

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

OpenWrite(Uri)

Abre um fluxo para gravar dados no recurso especificado.

OpenWrite(Uri, String)

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

OpenWriteAsync(Uri)

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

OpenWriteAsync(Uri, String)

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

OpenWriteAsync(Uri, String, Object)

Abre um fluxo para gravar dados no 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 para o 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 para o recurso especificado, usando o método especificado.

UploadDataAsync(Uri, Byte[])

Carrega um buffer de dados em 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 especificado e identificando o token.

UploadDataTaskAsync(String, Byte[])

Carrega 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[])

Carrega 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[])

Carrega 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[])

Carrega 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 em um recurso com o URI especificado.

UploadFile(String, String, String)

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

UploadFile(Uri, String)

Carrega o arquivo local especificado em um recurso com o URI especificado.

UploadFile(Uri, String, String)

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

UploadFileAsync(Uri, String)

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

UploadFileAsync(Uri, String, String)

Carrega o arquivo local especificado para o recurso especificado, 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 para o recurso especificado, usando o método POST. Esse método não bloqueia o thread de chamada.

UploadFileTaskAsync(String, String)

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

UploadFileTaskAsync(String, String, String)

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

UploadFileTaskAsync(Uri, String)

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

UploadFileTaskAsync(Uri, String, String)

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

UploadString(String, String)

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

UploadString(String, String, String)

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

UploadString(Uri, String)

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

UploadString(Uri, String, String)

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

UploadStringAsync(Uri, String)

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

UploadStringAsync(Uri, String, String)

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

UploadStringAsync(Uri, String, String, Object)

Carrega a cadeia de caracteres especificada para o 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 para o recurso identificado pelo URI especificado.

UploadValues(String, String, NameValueCollection)

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

UploadValues(Uri, NameValueCollection)

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

UploadValues(Uri, String, NameValueCollection)

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

UploadValuesAsync(Uri, NameValueCollection)

Carrega os dados na coleção de nome/valor especificado 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 especificado para o recurso identificado pelo URI especificado, usando o método especificado. Esse método não bloqueia o thread de chamada.

UploadValuesAsync(Uri, String, NameValueCollection, Object)

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

UploadValuesTaskAsync(String, NameValueCollection)

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

UploadValuesTaskAsync(String, String, NameValueCollection)

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

UploadValuesTaskAsync(Uri, NameValueCollection)

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

UploadValuesTaskAsync(Uri, String, NameValueCollection)

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

Eventos

Disposed

Ocorre quando o componente é descartado por uma chamada para o 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 assíncrona de download de recursos é 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 assíncrona de upload de arquivo é 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 carregamento de cadeia de caracteres é concluída.

UploadValuesCompleted

Ocorre quando um upload assíncrono de uma coleção de nome/valor é concluído.

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

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Confira também