WebRequest-Klasse

Fordert einen URI (Uniform Resource Identifier) an. Dies ist eine abstract Klasse.

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

Syntax

'Declaration
<SerializableAttribute> _
Public MustInherit Class WebRequest
    Inherits MarshalByRefObject
    Implements ISerializable
'Usage
Dim instance As WebRequest
[SerializableAttribute] 
public abstract class WebRequest : MarshalByRefObject, ISerializable
[SerializableAttribute] 
public ref class WebRequest abstract : public MarshalByRefObject, ISerializable
/** @attribute SerializableAttribute() */ 
public abstract class WebRequest extends MarshalByRefObject implements ISerializable
SerializableAttribute 
public abstract class WebRequest extends MarshalByRefObject implements ISerializable

Hinweise

WebRequest ist die abstract Basisklasse des Anforderungs-/Antwortmodells von .NET Framework für den Zugriff auf Daten im Internet. Eine Anwendung, die das Anforderungs-/Antwortmodell verwendet, kann protokollunabhängig Daten aus dem Internet anfordern. Hierbei werden von der Anwendung Instanzen der WebRequest-Klasse verwendet, während abgeleitete, protokollspezifische Klassen die Details der Anforderung ausführen.

Anforderungen werden von einer Anwendung an einen bestimmten URI gesendet, z. B. an eine Webseite auf einem Server. Der URI bestimmt, welche abgeleitete Klasse aus einer Liste der für die Anwendung registrierten abgeleiteten WebRequest-Klassen erstellt wird. Abgeleitete WebRequest-Klassen werden i. d. R. für die Behandlung eines bestimmten Protokolls registriert, z. B. HTTP oder FTP, können jedoch auch für die Behandlung der Anforderung eines bestimmten Servers oder eines Pfades auf einem Server registriert werden.

Die WebRequest-Klasse löst eine WebException aus, wenn beim Zugriff auf eine Internetressource Fehler auftreten. Die WebException.Status-Eigenschaft ist einer der WebExceptionStatus-Werte, die die Fehlerquelle angeben. Wenn WebException.Status auf WebExceptionStatus.ProtocolError festgelegt ist, enthält die Response-Eigenschaft die aus der Internetressource empfangene WebResponse.

Da die WebRequest-Klasse eine abstract Klasse ist, wird das tatsächliche Verhalten der WebRequest-Instanzen zur Laufzeit von der abgeleiteten Klasse bestimmt, die von der System.Net.WebRequest.Create-Methode zurückgegeben wird. Weitere Informationen über Standardwerte und Ausnahmen finden Sie in der Dokumentation zu den abgeleiteten Klassen, z. B. HttpWebRequest und FileWebRequest.

Hinweis

Verwenden Sie zum Initialisieren von neuen WebRequest-Instanzen die Create-Methode. Verwenden Sie nicht den WebRequest-Konstruktor.

Hinweis

Wenn die Anwendung, die das WebRequest-Objekt erstellt, mit den Anmeldeinformationen eines Standardbenutzers ausgeführt wird, kann die Anwendung nicht auf Zertifikate zugreifen, die im Speicher des lokalen Computers installiert sind, es sei denn, die entsprechende Berechtigung wurde dem Benutzer explizit erteilt.

Hinweise für Erben Wenn Sie WebRequest vererben, müssen Sie die folgenden Member überschreiben: Method, RequestUri, Headers, ContentLength, ContentType, Credentials, PreAuthenticate, GetRequestStream, BeginGetRequestStream, EndGetRequestStream, GetResponse, BeginGetResponse und EndGetResponse. Außerdem muss eine Implementierung der IWebRequestCreate-Schnittstelle bereitgestellt werden, die die Create-Methode definiert, die beim Aufruf von Create verwendet wird. Die Klasse, die die IWebRequestCreate-Schnittstelle implementiert, muss mithilfe der RegisterPrefix-Methode oder der Konfigurationsdatei registriert werden.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie eine WebRequest-Instanz erstellt und die Antwort zurückgegeben wird.

Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Namespace Examples.System.Net
    Public Class WebRequestGetExample

        Public Shared Sub Main()
            ' Create a request for the URL.         
            Dim request As WebRequest = WebRequest.Create("https://www.contoso.com/default.html")
            ' If required by the server, set the credentials.
            request.Credentials = CredentialCache.DefaultCredentials
            ' Get the response.
            Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
            ' Display the status.
            Console.WriteLine(response.StatusDescription)
            ' Get the stream containing content returned by the server.
            Dim dataStream As Stream = response.GetResponseStream()
            ' Open the stream using a StreamReader for easy access.
            Dim reader As New StreamReader(dataStream)
            ' Read the content.
            Dim responseFromServer As String = reader.ReadToEnd()
            ' Display the content.
            Console.WriteLine(responseFromServer)
            ' Cleanup the streams and the response.
            reader.Close()
            dataStream.Close()
            response.Close()
        End Sub 'Main
    End Class 'WebRequestGetExample
End Namespace
using System;
using System.IO;
using System.Net;
using System.Text;

namespace Examples.System.Net
{
    public class WebRequestGetExample
    {
        public static void Main ()
        {
            // Create a request for the URL.        
            WebRequest request = WebRequest.Create ("https://www.contoso.com/default.html");
            // If required by the server, set the credentials.
            request.Credentials = CredentialCache.DefaultCredentials;
            // Get the response.
            HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
            // Display the status.
            Console.WriteLine (response.StatusDescription);
            // Get the stream containing content returned by the server.
            Stream dataStream = response.GetResponseStream ();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader (dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd ();
            // Display the content.
            Console.WriteLine (responseFromServer);
            // Cleanup the streams and the response.
            reader.Close ();
            dataStream.Close ();
            response.Close ();
        }
    }
}
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Text;
int main()
{
   
   // Create a request for the URL.   
   WebRequest^ request = WebRequest::Create( "https://www.contoso.com/default.html" );
   
   // If required by the server, set the credentials.
   request->Credentials = CredentialCache::DefaultCredentials;
   
   // Get the response.
   HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
   
   // Display the status.
   Console::WriteLine( response->StatusDescription );
   
   // Get the stream containing content returned by the server.
   Stream^ dataStream = response->GetResponseStream();
   
   // Open the stream using a StreamReader for easy access.
   StreamReader^ reader = gcnew StreamReader( dataStream );
   
   // Read the content.
   String^ responseFromServer = reader->ReadToEnd();
   
   // Display the content.
   Console::WriteLine( responseFromServer );
   
   // Cleanup the streams and the response.
   reader->Close();
   dataStream->Close();
   response->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.Net.WebRequest
       System.Net.FileWebRequest
       System.Net.FtpWebRequest
       System.Net.HttpWebRequest

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 CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

WebRequest-Member
System.Net-Namespace
HttpWebRequest-Klasse

Weitere Ressourcen

Anfordern von Daten
Programmieren von austauschbaren Protokollen
Programmieren von austauschbaren Protokollen