Freigeben über


WebClient-Klasse

Stellt allgemeine Methoden zum Senden und Empfangen von Daten von einer mit einem URI gekennzeichneten Ressource bereit.

Namespace: System.Net
Assembly: System (in system.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
Public Class WebClient
    Inherits Component
'Usage
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

Hinweise

Die WebClient-Klasse stellt allgemeine Methoden zum Senden und Empfangen von Daten einer beliebigen lokalen Intranet- oder Internetressource bereit, die mit einem URI gekennzeichnet ist.

Die WebClient-Klasse verwendet die WebRequest-Klasse für den Zugriff auf Ressourcen. WebClient-Instanzen können mit einem beliebigen WebRequest-Nachfahren auf Daten zugreifen, der durch die WebRequest.RegisterPrefix-Methode registriert wird.

Hinweis

URIs, die mit den Schemabezeichnern http:, https:, ftp: und file: beginnen, werden von .NET Framework standardmäßig unterstützt.

In der folgenden Tabelle werden WebClient-Methoden für den Upload von Daten in eine Ressource beschrieben.

Methode

Beschreibung

OpenWrite

Ruft einen Stream für das Senden von Daten an die Ressource ab.

OpenWriteAsync

Ruft einen Stream für das Senden von Daten an die Ressource ab, ohne den aufrufenden Thread zu blockieren.

UploadData

Sendet ein Bytearray an die Ressource und gibt ein Byte-Array mit einer beliebigen Antwort zurück.

UploadDataAsync

Sendet ein Byte-Array an die Ressource, ohne den aufrufenden Thread zu blockieren.

UploadFile

Sendet eine lokale Datei an die Ressource und gibt ein Byte-Array mit einer beliebigen Antwort zurück.

UploadFileAsync

Sendet eine lokale Datei an die Ressource, ohne den aufrufenden Thread zu blockieren.

UploadValues

Sendet eine NameValueCollection an die Ressource und gibt ein Byte-Array mit einer beliebigen Antwort zurück.

UploadValuesAsync

Sendet eine NameValueCollection an die Ressource und gibt ein Byte-Array mit einer beliebigen Antwort zurück, ohne den aufrufenden Thread zu blockieren.

UploadString

Sendet einen String an die Ressource, ohne den aufrufenden Thread zu blockieren.

UploadStringAsync

Sendet einen String an die Ressource, ohne den aufrufenden Thread zu blockieren.

In der folgenden Tabelle werden WebClient-Methoden für den Download von Daten aus einer Ressource beschrieben.

Methode

Beschreibung

OpenRead

Gibt die Daten aus einer Ressource als Stream zurück.

OpenReadAsync

Gibt die Daten aus einer Ressource zurück, ohne den aufrufenden Thread zu blockieren.

DownloadData

Führt den Download von Daten aus einer Ressource durch und gibt ein Byte-Array zurück.

DownloadDataAsync

Führt den Download von Daten aus einer Ressource durch und gibt ein Byte-Array zurück, ohne den aufrufenden Thread zu blockieren.

DownloadFile

Führt den Download von Daten aus einer Ressource in eine lokale Datei durch.

DownloadFileAsync

Führt den Download von Daten aus einer Ressource in eine lokale Datei durch, ohne den aufrufenden Thread zu blockieren.

DownloadString

Führt den Download eines String aus einer Ressource durch, und gibt einen String zurück.

DownloadStringAsync

Führt den Download eines String aus einer Ressource durch, ohne den aufrufenden Thread zu blockieren.

Asynchrone Vorgänge, die nicht abgeschlossen wurden, können mit der CancelAsync-Methode abgebrochen werden.

WebClient-Instanzen senden in der Standardeinstellung keine optionalen HTTP-Header. Wenn für die Anforderung ein optionaler Header erforderlich ist, müssen Sie den Header der Headers-Auflistung hinzufügen. Um z. B. Abfragen in der Antwort beizubehalten, müssen Sie einen User-Agent-Header hinzufügen. Außerdem geben Server möglicherweise 500 (Interner Serverfehler) zurück, wenn der Header des Benutzeragents fehlt.

AllowAutoRedirect wird in WebClient-Instanzen auf true festgelegt.

Hinweise für Erben Abgeleitete Klassen müssen die Basisklassenimplementierung von WebClient aufrufen, um sicherzustellen, dass die abgeleitete Klasse wie erwartet funktioniert.

Beispiel

Im folgenden Codebeispiel wird der URI einer Ressource erfasst und abgerufen sowie die Antwort angezeigt.

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

.NET Framework-Sicherheit

  • WebPermission  für den Zugriff auf den angeforderten URI oder einen URI, zu dem die Anforderung umgeleitet wurde. Zugeordnete Enumeration: Connect

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
      System.Net.WebClient

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

WebClient-Member
System.Net-Namespace
WebRequest
WebResponse
HttpWebRequest-Klasse
HttpWebResponse-Klasse