WebClient Classe

Definizione

Fornisce metodi comuni per l'invio e la ricezione di dati da una risorsa identificata da un 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
Ereditarietà
Attributi

Esempio

L'esempio di codice seguente accetta l'URI di una risorsa, lo recupera e visualizza la risposta.

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

Commenti

Attenzione

WebRequest, HttpWebRequest, ServicePointe WebClient sono obsoleti e non è consigliabile usarli per nuovi sviluppi. Usare invece HttpClient.

La classe WebClient fornisce metodi comuni per l'invio o la ricezione di dati da qualsiasi risorsa locale, Intranet o Internet identificata da un URI.

La classe WebClient usa la classe WebRequest per fornire l'accesso alle risorse. WebClient istanze possono accedere ai dati con qualsiasi discendente WebRequest registrato con il metodo WebRequest.RegisterPrefix.

Nota

Per impostazione predefinita, .NET Framework supporta gli URI che iniziano con http:, https:, ftp:e gli identificatori dello schema di file:.

Nella tabella seguente vengono descritti WebClient metodi per il caricamento dei dati in una risorsa.

Metodo Descrizione
OpenWrite Recupera un Stream utilizzato per inviare dati alla risorsa.
OpenWriteAsync Recupera un Stream utilizzato per inviare dati alla risorsa, senza bloccare il thread chiamante.
UploadData Invia una matrice di byte alla risorsa e restituisce una matrice Byte contenente qualsiasi risposta.
UploadDataAsync Invia una matrice Byte alla risorsa, senza bloccare il thread chiamante.
UploadFile Invia un file locale alla risorsa e restituisce una matrice Byte contenente qualsiasi risposta.
UploadFileAsync Invia un file locale alla risorsa, senza bloccare il thread chiamante.
UploadValues Invia un NameValueCollection alla risorsa e restituisce una matrice di Byte contenente qualsiasi risposta.
UploadValuesAsync Invia un NameValueCollection alla risorsa e restituisce una matrice di Byte contenente qualsiasi risposta, senza bloccare il thread chiamante.
UploadString Invia un String alla risorsa e restituisce un String contenente qualsiasi risposta.
UploadStringAsync Invia un String alla risorsa, senza bloccare il thread chiamante.

Nella tabella seguente vengono descritti WebClient metodi per il download dei dati da una risorsa.

Metodo Descrizione
OpenRead Restituisce i dati di una risorsa come Stream.
OpenReadAsync Restituisce i dati da una risorsa, senza bloccare il thread chiamante.
DownloadData Scarica i dati da una risorsa e restituisce una matrice di Byte.
DownloadDataAsync Scarica i dati da una risorsa e restituisce una matrice di Byte, senza bloccare il thread chiamante.
DownloadFile Scarica i dati da una risorsa in un file locale.
DownloadFileAsync Scarica i dati da una risorsa a un file locale, senza bloccare il thread chiamante.
DownloadString Scarica un String da una risorsa e restituisce un String.
DownloadStringAsync Scarica un String da una risorsa, senza bloccare il thread chiamante.

È possibile usare il metodo CancelAsync per tentare di annullare le operazioni asincrone.

Un'istanza di WebClient non invia intestazioni HTTP facoltative per impostazione predefinita. Se la richiesta richiede un'intestazione facoltativa, è necessario aggiungere l'intestazione alla raccolta Headers. Ad esempio, per conservare le query nella risposta, è necessario aggiungere un'intestazione user-agent. Inoltre, i server possono restituire 500 (errore interno del server) se l'intestazione dell'agente utente non è presente.

AllowAutoRedirect è impostato su true nelle istanze di WebClient.

Note per gli eredi

Le classi derivate devono chiamare l'implementazione della classe base di WebClient per garantire che la classe derivata funzioni come previsto.

Costruttori

WebClient()
Obsoleti.

Inizializza una nuova istanza della classe WebClient.

Proprietà

AllowReadStreamBuffering
Obsoleti.

Ottiene o imposta un valore che indica se memorizzare nel buffer i dati letti dalla risorsa Internet per un'istanza di WebClient.

AllowWriteStreamBuffering
Obsoleti.

Ottiene o imposta un valore che indica se memorizzare nel buffer i dati scritti nella risorsa Internet per un'istanza di WebClient.

BaseAddress

Ottiene o imposta l'URI di base per le richieste effettuate da un WebClient.

CachePolicy

Ottiene o imposta i criteri della cache dell'applicazione per le risorse ottenute da questa istanza WebClient usando WebRequest oggetti .

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
Container

Ottiene il IContainer che contiene il Component.

(Ereditato da Component)
Credentials

Ottiene o imposta le credenziali di rete inviate all'host e usate per autenticare la richiesta.

DesignMode

Ottiene un valore che indica se la Component è attualmente in modalità progettazione.

(Ereditato da Component)
Encoding

Ottiene o imposta il Encoding utilizzato per caricare e scaricare stringhe.

Events

Ottiene l'elenco dei gestori eventi associati a questo Component.

(Ereditato da Component)
Headers

Ottiene o imposta una raccolta di coppie nome/valore di intestazione associate alla richiesta.

IsBusy

Ottiene un valore che indica se una richiesta Web è in corso.

Proxy

Ottiene o imposta il proxy utilizzato da questo oggetto WebClient.

QueryString

Ottiene o imposta una raccolta di coppie nome/valore di query associate alla richiesta.

ResponseHeaders

Ottiene una raccolta di coppie nome/valore di intestazione associate alla risposta.

Site

Ottiene o imposta il ISite del Component.

(Ereditato da Component)
UseDefaultCredentials

Ottiene o imposta un valore Boolean che controlla se i DefaultCredentials vengono inviati con le richieste.

Metodi

CancelAsync()

Annulla un'operazione asincrona in sospeso.

CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate dal Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate dal Component e, facoltativamente, rilascia le risorse gestite.

(Ereditato da Component)
DownloadData(String)

Scarica la risorsa come matrice di Byte dall'URI specificato.

DownloadData(Uri)

Scarica la risorsa come matrice di Byte dall'URI specificato.

DownloadDataAsync(Uri)

Scarica la risorsa come matrice di Byte dall'URI specificato come operazione asincrona.

DownloadDataAsync(Uri, Object)

Scarica la risorsa come matrice di Byte dall'URI specificato come operazione asincrona.

DownloadDataTaskAsync(String)

Scarica la risorsa come matrice Byte dall'URI specificato come operazione asincrona usando un oggetto attività.

DownloadDataTaskAsync(Uri)

Scarica la risorsa come matrice Byte dall'URI specificato come operazione asincrona usando un oggetto attività.

DownloadFile(String, String)

Scarica la risorsa con l'URI specificato in un file locale.

DownloadFile(Uri, String)

Scarica la risorsa con l'URI specificato in un file locale.

DownloadFileAsync(Uri, String)

Scarica, in un file locale, la risorsa con l'URI specificato. Questo metodo non blocca il thread chiamante.

DownloadFileAsync(Uri, String, Object)

Scarica, in un file locale, la risorsa con l'URI specificato. Questo metodo non blocca il thread chiamante.

DownloadFileTaskAsync(String, String)

Scarica la risorsa specificata in un file locale come operazione asincrona usando un oggetto attività.

DownloadFileTaskAsync(Uri, String)

Scarica la risorsa specificata in un file locale come operazione asincrona usando un oggetto attività.

DownloadString(String)

Scarica la risorsa richiesta come String. La risorsa da scaricare viene specificata come String contenente l'URI.

DownloadString(Uri)

Scarica la risorsa richiesta come String. La risorsa da scaricare viene specificata come Uri.

DownloadStringAsync(Uri)

Scarica la risorsa specificata come Uri. Questo metodo non blocca il thread chiamante.

DownloadStringAsync(Uri, Object)

Scarica la stringa specificata nella risorsa specificata. Questo metodo non blocca il thread chiamante.

DownloadStringTaskAsync(String)

Scarica la risorsa come String dall'URI specificato come operazione asincrona usando un oggetto attività.

DownloadStringTaskAsync(Uri)

Scarica la risorsa come String dall'URI specificato come operazione asincrona usando un oggetto attività.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Restituisce un oggetto che rappresenta un servizio fornito dal Component o dal relativo Container.

(Ereditato da Component)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
GetWebRequest(Uri)

Restituisce un oggetto WebRequest per la risorsa specificata.

GetWebResponse(WebRequest)

Restituisce il WebResponse per il WebRequestspecificato.

GetWebResponse(WebRequest, IAsyncResult)

Restituisce il WebResponse per il WebRequest specificato utilizzando il IAsyncResultspecificato.

InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
OnDownloadDataCompleted(DownloadDataCompletedEventArgs)

Genera l'evento DownloadDataCompleted.

OnDownloadFileCompleted(AsyncCompletedEventArgs)

Genera l'evento DownloadFileCompleted.

OnDownloadProgressChanged(DownloadProgressChangedEventArgs)

Genera l'evento DownloadProgressChanged.

OnDownloadStringCompleted(DownloadStringCompletedEventArgs)

Genera l'evento DownloadStringCompleted.

OnOpenReadCompleted(OpenReadCompletedEventArgs)

Genera l'evento OpenReadCompleted.

OnOpenWriteCompleted(OpenWriteCompletedEventArgs)

Genera l'evento OpenWriteCompleted.

OnUploadDataCompleted(UploadDataCompletedEventArgs)

Genera l'evento UploadDataCompleted.

OnUploadFileCompleted(UploadFileCompletedEventArgs)

Genera l'evento UploadFileCompleted.

OnUploadProgressChanged(UploadProgressChangedEventArgs)

Genera l'evento UploadProgressChanged.

OnUploadStringCompleted(UploadStringCompletedEventArgs)

Genera l'evento UploadStringCompleted.

OnUploadValuesCompleted(UploadValuesCompletedEventArgs)

Genera l'evento UploadValuesCompleted.

OnWriteStreamClosed(WriteStreamClosedEventArgs)
Obsoleti.

Genera l'evento WriteStreamClosed.

OpenRead(String)

Apre un flusso leggibile per i dati scaricati da una risorsa con l'URI specificato come String.

OpenRead(Uri)

Apre un flusso leggibile per i dati scaricati da una risorsa con l'URI specificato come Uri.

OpenReadAsync(Uri)

Apre un flusso leggibile contenente la risorsa specificata. Questo metodo non blocca il thread chiamante.

OpenReadAsync(Uri, Object)

Apre un flusso leggibile contenente la risorsa specificata. Questo metodo non blocca il thread chiamante.

OpenReadTaskAsync(String)

Apre un flusso leggibile contenente la risorsa specificata come operazione asincrona usando un oggetto attività.

OpenReadTaskAsync(Uri)

Apre un flusso leggibile contenente la risorsa specificata come operazione asincrona usando un oggetto attività.

OpenWrite(String)

Apre un flusso per la scrittura di dati nella risorsa specificata.

OpenWrite(String, String)

Apre un flusso per la scrittura di dati nella risorsa specificata utilizzando il metodo specificato.

OpenWrite(Uri)

Apre un flusso per la scrittura di dati nella risorsa specificata.

OpenWrite(Uri, String)

Apre un flusso per la scrittura di dati nella risorsa specificata utilizzando il metodo specificato.

OpenWriteAsync(Uri)

Apre un flusso per la scrittura di dati nella risorsa specificata. Questo metodo non blocca il thread chiamante.

OpenWriteAsync(Uri, String)

Apre un flusso per la scrittura di dati nella risorsa specificata. Questo metodo non blocca il thread chiamante.

OpenWriteAsync(Uri, String, Object)

Apre un flusso per la scrittura di dati nella risorsa specificata utilizzando il metodo specificato. Questo metodo non blocca il thread chiamante.

OpenWriteTaskAsync(String)

Apre un flusso per la scrittura di dati nella risorsa specificata come operazione asincrona usando un oggetto attività.

OpenWriteTaskAsync(String, String)

Apre un flusso per la scrittura di dati nella risorsa specificata come operazione asincrona usando un oggetto attività.

OpenWriteTaskAsync(Uri)

Apre un flusso per la scrittura di dati nella risorsa specificata come operazione asincrona usando un oggetto attività.

OpenWriteTaskAsync(Uri, String)

Apre un flusso per la scrittura di dati nella risorsa specificata come operazione asincrona usando un oggetto attività.

ToString()

Restituisce un String contenente il nome del Component, se presente. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)
UploadData(String, Byte[])

Carica un buffer di dati in una risorsa identificata da un URI.

UploadData(String, String, Byte[])

Carica un buffer di dati nella risorsa specificata usando il metodo specificato.

UploadData(Uri, Byte[])

Carica un buffer di dati in una risorsa identificata da un URI.

UploadData(Uri, String, Byte[])

Carica un buffer di dati nella risorsa specificata usando il metodo specificato.

UploadDataAsync(Uri, Byte[])

Carica un buffer di dati in una risorsa identificata da un URI, usando il metodo POST. Questo metodo non blocca il thread chiamante.

UploadDataAsync(Uri, String, Byte[])

Carica un buffer di dati in una risorsa identificata da un URI, usando il metodo specificato. Questo metodo non blocca il thread chiamante.

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

Carica un buffer di dati in una risorsa identificata da un URI, usando il metodo specificato e il token di identificazione.

UploadDataTaskAsync(String, Byte[])

Carica un buffer di dati che contiene una matrice di Byte nell'URI specificato come operazione asincrona usando un oggetto attività.

UploadDataTaskAsync(String, String, Byte[])

Carica un buffer di dati che contiene una matrice di Byte nell'URI specificato come operazione asincrona usando un oggetto attività.

UploadDataTaskAsync(Uri, Byte[])

Carica un buffer di dati che contiene una matrice di Byte nell'URI specificato come operazione asincrona usando un oggetto attività.

UploadDataTaskAsync(Uri, String, Byte[])

Carica un buffer di dati che contiene una matrice di Byte nell'URI specificato come operazione asincrona usando un oggetto attività.

UploadFile(String, String)

Carica il file locale specificato in una risorsa con l'URI specificato.

UploadFile(String, String, String)

Carica il file locale specificato nella risorsa specificata usando il metodo specificato.

UploadFile(Uri, String)

Carica il file locale specificato in una risorsa con l'URI specificato.

UploadFile(Uri, String, String)

Carica il file locale specificato nella risorsa specificata usando il metodo specificato.

UploadFileAsync(Uri, String)

Carica il file locale specificato nella risorsa specificata, usando il metodo POST. Questo metodo non blocca il thread chiamante.

UploadFileAsync(Uri, String, String)

Carica il file locale specificato nella risorsa specificata, usando il metodo POST. Questo metodo non blocca il thread chiamante.

UploadFileAsync(Uri, String, String, Object)

Carica il file locale specificato nella risorsa specificata, usando il metodo POST. Questo metodo non blocca il thread chiamante.

UploadFileTaskAsync(String, String)

Carica il file locale specificato in una risorsa come operazione asincrona usando un oggetto attività.

UploadFileTaskAsync(String, String, String)

Carica il file locale specificato in una risorsa come operazione asincrona usando un oggetto attività.

UploadFileTaskAsync(Uri, String)

Carica il file locale specificato in una risorsa come operazione asincrona usando un oggetto attività.

UploadFileTaskAsync(Uri, String, String)

Carica il file locale specificato in una risorsa come operazione asincrona usando un oggetto attività.

UploadString(String, String)

Carica la stringa specificata nella risorsa specificata, usando il metodo POST.

UploadString(String, String, String)

Carica la stringa specificata nella risorsa specificata usando il metodo specificato.

UploadString(Uri, String)

Carica la stringa specificata nella risorsa specificata, usando il metodo POST.

UploadString(Uri, String, String)

Carica la stringa specificata nella risorsa specificata usando il metodo specificato.

UploadStringAsync(Uri, String)

Carica la stringa specificata nella risorsa specificata. Questo metodo non blocca il thread chiamante.

UploadStringAsync(Uri, String, String)

Carica la stringa specificata nella risorsa specificata. Questo metodo non blocca il thread chiamante.

UploadStringAsync(Uri, String, String, Object)

Carica la stringa specificata nella risorsa specificata. Questo metodo non blocca il thread chiamante.

UploadStringTaskAsync(String, String)

Carica la stringa specificata nella risorsa specificata come operazione asincrona usando un oggetto attività.

UploadStringTaskAsync(String, String, String)

Carica la stringa specificata nella risorsa specificata come operazione asincrona usando un oggetto attività.

UploadStringTaskAsync(Uri, String)

Carica la stringa specificata nella risorsa specificata come operazione asincrona usando un oggetto attività.

UploadStringTaskAsync(Uri, String, String)

Carica la stringa specificata nella risorsa specificata come operazione asincrona usando un oggetto attività.

UploadValues(String, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato.

UploadValues(String, String, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato, usando il metodo specificato.

UploadValues(Uri, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato.

UploadValues(Uri, String, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato, usando il metodo specificato.

UploadValuesAsync(Uri, NameValueCollection)

Carica i dati nella raccolta nome/valore specificata nella risorsa identificata dall'URI specificato. Questo metodo non blocca il thread chiamante.

UploadValuesAsync(Uri, String, NameValueCollection)

Carica i dati nella raccolta nome/valore specificata nella risorsa identificata dall'URI specificato, usando il metodo specificato. Questo metodo non blocca il thread chiamante.

UploadValuesAsync(Uri, String, NameValueCollection, Object)

Carica i dati nella raccolta nome/valore specificata nella risorsa identificata dall'URI specificato, usando il metodo specificato. Questo metodo non blocca il thread chiamante e consente al chiamante di passare un oggetto al metodo richiamato al termine dell'operazione.

UploadValuesTaskAsync(String, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato come operazione asincrona usando un oggetto attività.

UploadValuesTaskAsync(String, String, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato come operazione asincrona usando un oggetto attività.

UploadValuesTaskAsync(Uri, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato come operazione asincrona usando un oggetto attività.

UploadValuesTaskAsync(Uri, String, NameValueCollection)

Carica la raccolta nome/valore specificata nella risorsa identificata dall'URI specificato come operazione asincrona usando un oggetto attività.

Eventi

Disposed

Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose().

(Ereditato da Component)
DownloadDataCompleted

Si verifica quando viene completata un'operazione di download dei dati asincrona.

DownloadFileCompleted

Si verifica quando viene completata un'operazione di download di file asincrona.

DownloadProgressChanged

Si verifica quando un'operazione di download asincrona trasferisce correttamente alcuni o tutti i dati.

DownloadStringCompleted

Si verifica quando viene completata un'operazione asincrona di download delle risorse.

OpenReadCompleted

Si verifica quando viene completata un'operazione asincrona per aprire un flusso contenente una risorsa.

OpenWriteCompleted

Si verifica quando un'operazione asincrona per aprire un flusso per scrivere dati in una risorsa viene completata.

UploadDataCompleted

Si verifica quando viene completata un'operazione asincrona di caricamento dei dati.

UploadFileCompleted

Si verifica quando viene completata un'operazione asincrona di caricamento di file.

UploadProgressChanged

Si verifica quando un'operazione di caricamento asincrona trasferisce correttamente alcuni o tutti i dati.

UploadStringCompleted

Si verifica quando viene completata un'operazione asincrona di caricamento di stringhe.

UploadValuesCompleted

Si verifica quando viene completato un caricamento asincrono di una raccolta nome/valore.

WriteStreamClosed
Obsoleti.

Si verifica quando un'operazione asincrona per scrivere dati in una risorsa tramite un flusso di scrittura viene chiusa.

Si applica a

Prodotto Versioni
.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

Vedi anche