Fornisce metodi comuni per l'invio e la ricezione di dati da una risorsa identificata mediante un URI.
Spazio dei nomi: System.Net
Assembly: System (in system.dll)
Visual Basic - (Dichiarazione)
<ComVisibleAttribute(True)> _
Public Class WebClient
Inherits Component
Dim instance As WebClient
[ComVisibleAttribute(true)]
public class WebClient : Component
[ComVisibleAttribute(true)]
public ref class WebClient : public Component
/** @attribute ComVisibleAttribute(true) */
public class WebClient extends Component
ComVisibleAttribute(true)
public class WebClient extends Component
La classe WebClient fornisce metodi comuni per l'invio o la ricezione di dati da qualsiasi risorsa locale, rete Intranet o Internet identificata da un URI.
La classe WebClient utilizza la classe WebRequest per fornire accesso alle risorse. Le istanze di WebClient possono accedere ai dati con qualsiasi classe WebRequest discendente registrata con il metodo WebRequest.RegisterPrefix.
Nota |
|---|
| Per impostazione predefinita, in .NET Framework sono supportati URI che iniziano con identificatori di schema http:, https:, ftp e file:. |
La seguente tabella descrive i metodi WebClient per l'upload di dati su una risorsa.
| Metodo | Descrizione |
| OpenWrite | Recupera una classe Stream utilizzata per inviare dati alla risorsa. |
| OpenWriteAsync | Recupera una classe Stream utilizzata per inviare dati alla risorsa senza bloccare il thread chiamante. |
| UploadData | Invia una matrice di byte alla risorsa e restituisce una matrice Byte contenente una 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 una risposta. |
| UploadFileAsync | Invia un file locale alla risorsa senza bloccare il thread chiamante. |
| UploadValues | Invia una classe NameValueCollection alla risorsa e restituisce una matrice Byte contenente una risposta. |
| UploadValuesAsync | Invia una classe NameValueCollection alla risorsa e restituisce una matrice Byte contenente una risposta senza bloccare il thread chiamante. |
| UploadString | Invia una classe String alla risorsa senza bloccare il thread chiamante. |
| UploadStringAsync | Invia una classe String alla risorsa senza bloccare il thread chiamante. |
La seguente tabella descrive i metodi WebClient per il download dei dati da una risorsa.
| Metodo | Descrizione |
| OpenRead | Restituisce i dati da una risorsa sotto forma di classe Stream. |
| OpenReadAsync | Restituisce i dati da una risorsa senza bloccare il thread chiamante. |
| DownloadData | Esegue il download dei dati da una risorsa e restituisce una matrice Byte. |
| DownloadDataAsync | Esegue il download dei dati da una risorsa e restituisce una matrice Byte senza bloccare il thread chiamante. |
| DownloadFile | Esegue il download in un file locale dei dati da una risorsa. |
| DownloadFileAsync | Esegue il download in un file locale dei dati da una risorsa senza bloccare il thread chiamante. |
| DownloadString | Esegue il download di una classe String da una risorsa e restituisce una classe String. |
| DownloadStringAsync | Esegue il download di una classe String da un risorsa senza bloccare il thread chiamante. |
È possibile utilizzare il metodo CancelAsync per annullare le operazioni asincrone non completate.
Per impostazione predefinita le intestazioni HTTP non vengono inviate dall'istanza WebClient. Se la richiesta richiede un'intestazione opzionale, è necessario aggiungere l'intestazione all'insieme Headers. Ad esempio, per mantenere le query nella risposta, è necessario aggiungere un'intestazione dell'agente utente. Inoltre, i server posso restituire 500 (Errore interno del server) se l'intestazione dell'agente utente è mancante.
AllowAutoRedirect è impostata su true nelle istanze di WebClient.
Note sull'ereditarietà:
Le classi derivate devono chiamare l'implementazione della classe di base della classe WebClient per garantire che la classe derivata si comporti come previsto.
Nell'esempio di codice riportato di seguito, viene recuperato l'URI di una risorsa e viene visualizzata la risposta.
Imports System
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
Dim 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;)")
Dim data As Stream = client.OpenRead(args(0))
Dim reader As New StreamReader(data)
Dim s As String = reader.ReadToEnd()
Console.WriteLine(s)
data.Close()
reader.Close()
End Sub 'Main
End Class 'Test
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.");
}
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;)");
Stream data = client.OpenRead (args[0]);
StreamReader reader = new StreamReader (data);
string s = reader.ReadToEnd ();
Console.WriteLine (s);
data.Close ();
reader.Close ();
}
}
#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();
}
Protezione .NET Framework
- WebPermission
per accedere all'URI richiesto o a qualsiasi URI a cui viene reindirizzata la richiesta. Enumerazione associata: Connect.
Gerarchia di ereditarietà
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Net.WebClient
I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.
Informazioni sulla versione
.NET Framework
Supportato in: 2.0 1.1 1.0