HttpWebRequest Klasse

Definition

Stellt eine HTTP-spezifische Implementierung der WebRequest-Klasse bereit.

public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
    inherit WebRequest
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
Vererbung
HttpWebRequest
Vererbung
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird ein HttpWebRequest URI http://www.contoso.com/erstellt.

HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));

HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");

Dim myReq As HttpWebRequest = _
    WebRequest.Create("http://www.contoso.com/")

Hinweise

Wichtig

Es wird nicht empfohlen, dass Sie für neue Entwicklung verwenden HttpWebRequest . Verwenden Sie stattdessen die System.Net.Http.HttpClient Klasse.

Die HttpWebRequest Klasse bietet Unterstützung für die Eigenschaften und Methoden, die in WebRequest und für zusätzliche Eigenschaften und Methoden definiert sind, mit denen der Benutzer direkt mit Servern mit HTTP interagieren kann.

Verwenden Sie nicht die HttpWebRequest Konstruktor. Verwenden Sie die WebRequest.Create Methode, um neue HttpWebRequest Objekte zu initialisieren. Wenn das Schema für den Uniform Resource Identifier (URI) ist http:// oder https://, Create gibt ein HttpWebRequest Objekt zurück.

Die GetResponse Methode stellt eine synchrone Anforderung an die in der RequestUri Eigenschaft angegebene Ressource bereit und gibt einen HttpWebResponse Wert zurück, der das Antwortobjekt enthält. Die Antwortdaten können mithilfe des von GetResponseStreamihnen zurückgegebenen Datenstroms empfangen werden. Wenn das Antwortobjekt oder der Antwortdatenstrom geschlossen ist, werden verbleibende Daten nicht mehr verwendet. Die verbleibenden Daten werden abgelassen, und der Socket wird beim Schließen des Antwortobjekts oder Datenstroms erneut verwendet, wenn die folgenden Bedingungen enthalten sind: Es handelt sich um eine keep-alive- oder pipelined-Anforderung, nur eine kleine Menge von Daten muss empfangen werden, oder die verbleibenden Daten werden in einem kleinen Zeitintervall empfangen. Wenn keine der erwähnten Bedingungen halten oder die Abflusszeit überschritten wird, wird der Socket geschlossen. Für Keep-Alive- oder Pipelineverbindungen empfehlen wir dringend, dass die Anwendung die Datenströme bis zum EOF liest. Dadurch wird sichergestellt, dass der Socket für nachfolgende Anforderungen wieder verwendet wird, wodurch eine bessere Leistung und weniger Ressourcen verwendet werden.

Wenn Sie Daten an die Ressource senden möchten, gibt die GetRequestStream Methode ein Stream Objekt zurück, das zum Senden von Daten verwendet werden soll. Die BeginGetRequestStream Methoden bieten EndGetRequestStream asynchronen Zugriff auf den Datenstrom.

Für die Clientauthentifizierung mit HttpWebRequestdem Clientzertifikat muss im Speicher "Mein Zertifikat" des aktuellen Benutzers installiert werden.

Die HttpWebRequest Klasse löst beim Zugriff auf eine Ressource einen WebException Fehler aus. Die WebException.Status Eigenschaft enthält einen WebExceptionStatus Wert, der die Quelle des Fehlers angibt. Wenn WebException.Status dies WebExceptionStatus.ProtocolErrorder Grund ist, enthält die Response Eigenschaft den HttpWebResponse Empfangenen aus der Ressource.

HttpWebRequest stellt allgemeine HTTP-Headerwerte bereit, die an die Internetressource gesendet werden, als Eigenschaften festgelegt, durch Methoden festgelegt oder vom System festgelegt werden; Die folgende Tabelle enthält eine vollständige Liste. Sie können andere Kopfzeilen in der Headers Eigenschaft als Name/Wertpaare festlegen. Beachten Sie, dass Server und Caches während der Anforderung Kopfzeilen ändern oder hinzufügen können.

In der folgenden Tabelle sind die HTTP-Header aufgeführt, die entweder durch Eigenschaften oder Methoden oder das System festgelegt werden.

Header Festlegen nach
Accept Durch die Accept Eigenschaft festgelegt.
Connection Durch die Connection Eigenschaft, KeepAlive Eigenschaft festgelegt.
Content-Length Durch die ContentLength Eigenschaft festgelegt.
Content-Type Durch die ContentType Eigenschaft festgelegt.
Expect Durch die Expect Eigenschaft festgelegt.
Date Legen Sie das System auf das aktuelle Datum fest.
Host Legen Sie das System auf aktuelle Hostinformationen fest.
If-Modified-Since Durch die IfModifiedSince Eigenschaft festgelegt.
Range Durch die AddRange Methode festgelegt.
Referer Durch die Referer Eigenschaft festgelegt.
Transfer-Encoding Durch die Eigenschaft festgelegt (die TransferEncoding SendChunked Eigenschaft muss truesein).
User-Agent Durch die UserAgent Eigenschaft festgelegt.

Hinweis

HttpWebRequest wird automatisch registriert. Sie müssen die RegisterPrefix Methode nicht aufrufen, um sich zu registrieren System.Net.HttpWebRequest , bevor Sie URIs http:// ab oder https://verwenden.

Die Lokale Computer- oder Anwendungskonfigurationsdatei kann angeben, dass ein Standardproxy verwendet wird. Wenn die Proxy Eigenschaft angegeben wird, überschreiben die Proxyeinstellungen aus der Proxy Eigenschaft die lokale Computer- oder Anwendungskonfigurationsdatei, und die HttpWebRequest Instanz verwendet die angegebenen Proxyeinstellungen. Wenn kein Proxy in einer Konfigurationsdatei angegeben ist und die Eigenschaft nicht angegeben ist, verwendet die Proxy HttpWebRequest Klasse die von Internet Explorer geerbten Proxyeinstellungen auf dem lokalen Computer. Wenn in Internet Explorer keine Proxyeinstellungen vorhanden sind, wird die Anforderung direkt an den Server gesendet.

Die HttpWebRequest Klasse analysiert eine Proxyumgehungsliste mit Platzhalterzeichen, die von Internet Explorer anders geerbt wurden als die Umgehungsliste wird direkt von Internet Explorer analysiert. Die Klasse analysiert beispielsweise HttpWebRequest eine Umgehungsliste von "nt*" aus Internet Explorer als regulärer Ausdruck von "nt.$". Dies unterscheidet sich von dem systemeigenen Verhalten von Internet Explorer. Daher würde eine URL von "http://intxxxxx" den Proxy mithilfe der HttpWebRequest Klasse umgehen, aber nicht den Proxy mithilfe von Internet Explorer umgehen.

Hinweis

Das Framework cachet SSL-Sitzungen während der Erstellung und versucht, eine zwischengespeicherte Sitzung für eine neue Anforderung wiederzuverwenden. Wenn Sie versuchen, eine SSL-Sitzung wiederzuverwenden, verwendet das Framework das erste Element ClientCertificates (falls vorhanden) oder versucht, eine anonyme Sitzung wiederzuverwenden, wenn ClientCertificates leer ist.

Hinweis

Aus Sicherheitsgründen sind Cookies standardmäßig deaktiviert. Wenn Sie Cookies verwenden möchten, verwenden Sie die CookieContainer Eigenschaft, um Cookies zu aktivieren.

Das .NET Framework 4.6 enthält ein neues Sicherheitsfeature, das unsichere Verschlüsselungs- und Hashalgorithmen für Verbindungen blockiert. Anwendungen, die TLS/SSL über APIs wie HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream usw. verwenden und auf .NET Framework 4.6 abzielen, erhalten standardmäßig das sicherere Verhalten.

Entwickler möchten dieses Verhalten möglicherweise deaktivieren, um die Interoperabilität mit ihren vorhandenen SSL3-Diensten ODER TLS w/RC4-Diensten beizubehalten. In diesem Artikel wird erläutert, wie Sie Ihren Code so ändern, dass das neue Verhalten deaktiviert ist.

Konstruktoren

HttpWebRequest()
Veraltet.
Veraltet.

Initialisiert eine neue Instanz der HttpWebRequest-Klasse. Dieser Konstruktor ist veraltet.

HttpWebRequest(SerializationInfo, StreamingContext)
Veraltet.
Veraltet.
Veraltet.
Veraltet.
Veraltet.

Initialisiert eine neue Instanz der HttpWebRequest-Klasse aus den angegebenen Instanzen der SerializationInfo-Klasse und der StreamingContext-Klasse. Dieser Konstruktor ist veraltet.

HttpWebRequest(Uri)

Eigenschaften

Accept

Ruft den Wert des Accept-HTTP-Headers ab oder legt ihn fest.

Address

Ruft den URI (Uniform Resource Identifier) der Internetressource ab, die auf die Anforderung reagiert.

AllowAutoRedirect

Ruft einen Wert ab, der angibt, ob die Anforderung Umleitungsantworten folgen soll, oder legt diesen Wert fest.

AllowReadStreamBuffering

Ruft einen Wert ab, der angibt, ob die von der Internetressource empfangenen Daten gepuffert werden sollen, oder legt diesen Wert fest.

AllowWriteStreamBuffering

Ruft einen Wert ab, der angibt, ob die an die Internetressource gesendeten Daten gepuffert werden sollen, oder legt diesen fest.

AuthenticationLevel

Ruft Werte ab, die die für diese Anforderung verwendete Ebene von Authentifizierung und Identitätswechsel angeben, oder legt diese fest.

(Geerbt von WebRequest)
AutomaticDecompression

Ruft den Typ der verwendeten Dekomprimierung ab oder legt diesen fest.

CachePolicy

Ruft die Cacherichtlinie für diese Anforderung ab oder legt diese fest.

(Geerbt von WebRequest)
ClientCertificates

Ruft die dieser Anforderung zugeordnete Auflistung von Sicherheitszertifikaten ab oder legt diese fest.

Connection

Ruft den Wert des Connection-HTTP-Headers ab oder legt ihn fest.

ConnectionGroupName

Ruft den Namen der Verbindungsgruppe für die Anforderung ab oder legt diesen fest.

ConnectionGroupName

Ruft beim Überschreiben in einer Nachfolgerklasse den Namen der Verbindungsgruppe für die Anforderung ab oder legt diesen fest.

(Geerbt von WebRequest)
ContentLength

Ruft den Content-length-HTTP-Header ab oder legt diesen fest.

ContentLength

Ruft beim Überschreiben in einer Nachfolgerklasse die Inhaltslänge der zu sendenden Anforderungsdaten ab oder legt diese fest.

(Geerbt von WebRequest)
ContentType

Ruft den Wert des Content-type-HTTP-Headers ab oder legt ihn fest.

ContinueDelegate

Ruft die Delegatenmethode ab, die aufgerufen wird, wenn eine HTTP-100-Continue-Antwort von der Internetressource empfangen wird, oder legt diese fest.

ContinueTimeout

Ruft eine Timeout-Zeit (in Millisekunden) ab oder legt diese fest, bis zu der auf den Serverstatus gewartet wird, nachdem "100-Continue" vom Server empfangen wurde.

CookieContainer

Ruft die der Anforderung zugeordneten Cookies ab oder legt diese fest.

CreatorInstance
Veraltet.

Ruft beim Überschreiben in einer Nachfolgerklasse das von der IWebRequestCreate-Klasse abgeleitete Factoryobjekt ab. Mit dieser Klasse wird die WebRequest erstellt, die instanziiert wird, um die Anforderung an den angegebenen URI zu stellen.

(Geerbt von WebRequest)
Credentials

Ruft Authentifizierungsinformationen für die Anforderung ab oder legt diese fest.

Date

Ruft den Date-HTTP-Headerwert für eine HTTP-Anforderung ab oder legt ihn fest.

DefaultCachePolicy

Ruft die Standardcacherichtlinie für diese Anforderung ab oder legt diese fest.

DefaultMaximumErrorResponseLength

Ruft die standardmäßige maximale Länge einer HTTP-Fehlerantwort ab oder legt diese fest.

DefaultMaximumResponseHeadersLength

Ruft den Standardwert für die MaximumResponseHeadersLength-Eigenschaft ab oder legt diesen fest.

Expect

Ruft den Wert des Expect-HTTP-Headers ab oder legt ihn fest.

HaveResponse

Ruft einen Wert ab, der angibt, ob eine Antwort von einer Internetressource empfangen wurde.

Headers

Gibt eine Auflistung der Name-Wert-Paare an, aus denen sich die HTTP-Header zusammensetzen.

Host

Ruft den Hostheaderwert ab, der in einer HTTP-Anforderung unabhängig vom Anforderungs-URI verwendet werden soll, oder legt ihn fest.

IfModifiedSince

Ruft den Wert des HTTP-Headers If-Modified-Since ab oder legt diesen Wert fest.

ImpersonationLevel

Ruft die Ebene des Identitätswechsels für die aktuelle Anforderung ab oder legt diese fest.

(Geerbt von WebRequest)
KeepAlive

Ruft einen Wert ab, der angibt, ob eine permanente Verbindung mit der Internetressource hergestellt werden soll, oder legt diesen fest.

MaximumAutomaticRedirections

Ruft die maximale Anzahl von Umleitungen ab, denen die Anforderung folgt, oder legt diese fest.

MaximumResponseHeadersLength

Ruft die maximal zulässige Länge der Antwortheader ab oder legt diese fest.

MediaType

Ruft den Medientyp der Anforderung ab oder legt diesen fest.

Method

Ruft die Methode für die Anforderung ab oder legt diese fest.

Pipelined

Ruft einen Wert ab, der angibt, ob die Anforderung über Pipelineverbindungen zur Internetressource gesendet werden soll, oder legt diesen fest.

PreAuthenticate

Ruft einen Wert ab, der angibt, ob mit der Anforderung ein Autorisierungsheader gesendet wird, oder legt diesen fest.

PreAuthenticate

Gibt beim Überschreiben in einer Nachfolgerklasse an, ob die Anforderung zuvor authentifiziert werden muss.

(Geerbt von WebRequest)
ProtocolVersion

Ruft die für die Anforderung zu verwendende HTTP-Version ab oder legt diese fest.

Proxy

Ruft Proxyinformationen für die Anforderung ab oder legt diese fest.

Proxy

Ruft beim Überschreiben in einer Nachfolgerklasse den beim Zugriff auf diese Internetressource verwendeten Netzwerkproxy ab oder legt diesen fest.

(Geerbt von WebRequest)
ReadWriteTimeout

Ruft ein Timeout in Millisekunden für das Schreiben in einen Stream oder das Lesen aus einem Stream ab oder legt dieses fest.

Referer

Ruft den Wert des Referer-HTTP-Headers ab oder legt ihn fest.

RequestUri

Ruft den ursprünglichen URI (Uniform Resource Identifier) der Anforderung ab.

SendChunked

Ruft einen Wert ab, der angibt, ob die Daten in Segmenten an die Internetressource gesendet werden sollen, oder legt diesen fest.

ServerCertificateValidationCallback

Ruft eine Rückruffunktion zur Überprüfung des Serverzertifikats ab oder legt diese fest.

ServicePoint

Ruft den für die Anforderung zu verwendenden Dienstpunkt ab.

SupportsCookieContainer

Ruft einen Wert ab, der angibt, ob die Anforderung Unterstützung für einen CookieContainer bereitstellt.

Timeout

Ruft den Timeoutwert in Millisekunden für die GetResponse()-Methode und die GetRequestStream()-Methode ab oder legt diesen fest.

Timeout

Ruft die Zeitspanne in Millisekunden bis zum Überschreiten des Zeitlimits der Anforderung ab.

(Geerbt von WebRequest)
TransferEncoding

Ruft den Wert des Transfer-encoding-HTTP-Headers ab oder legt ihn fest.

UnsafeAuthenticatedConnectionSharing

Ruft einen Wert ab, der angibt, ob die Freigabe NTLM-authentifizierter Hochgeschwindigkeitsverbindungen zulässig ist, oder legt diesen fest.

UseDefaultCredentials

Ruft einen Boolean-Wert ab, der steuert, ob mit den Anforderungen Standardanmeldeinformationen gesendet werden, oder legt diesen fest.

UseDefaultCredentials

Ruft beim Überschreiben in einer Nachfolgerklasse einen Boolean-Wert ab, der steuert, ob mit Anforderungen DefaultCredentials gesendet werden, oder legt einen solchen Wert fest.

(Geerbt von WebRequest)
UserAgent

Ruft den Wert des User-agent-HTTP-Headers ab oder legt ihn fest.

Methoden

Abort()

Bricht eine Anforderung an eine Internetressource ab.

AddRange(Int32)

Fügt einer Anforderung einen Bytebereichsheader für einen bestimmten Bereich am Anfang oder Ende der angeforderten Daten hinzu.

AddRange(Int32, Int32)

Fügt der Anforderung einen Bytebereichsheader für einen angegebenen Bereich hinzu.

AddRange(Int64)

Fügt einer Anforderung einen Bytebereichsheader für einen bestimmten Bereich am Anfang oder Ende der angeforderten Daten hinzu.

AddRange(Int64, Int64)

Fügt der Anforderung einen Bytebereichsheader für einen angegebenen Bereich hinzu.

AddRange(String, Int32)

Fügt einer Anforderung einen Bereichsheader für einen bestimmten Bereich am Anfang oder Ende der angeforderten Daten hinzu.

AddRange(String, Int32, Int32)

Fügt einer Anforderung einen Bereichsheader für einen angegebenen Bereich hinzu.

AddRange(String, Int64)

Fügt einer Anforderung einen Bereichsheader für einen bestimmten Bereich am Anfang oder Ende der angeforderten Daten hinzu.

AddRange(String, Int64, Int64)

Fügt einer Anforderung einen Bereichsheader für einen angegebenen Bereich hinzu.

BeginGetRequestStream(AsyncCallback, Object)

Startet eine asynchrone Anforderung eines Stream-Objekts, das zum Schreiben von Daten verwendet werden soll.

BeginGetResponse(AsyncCallback, Object)

Startet eine asynchrone Anforderung an eine Internetressource.

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Beendet eine asynchrone Anforderung eines Stream-Objekts, das zum Schreiben von Daten verwendet werden soll.

EndGetRequestStream(IAsyncResult, TransportContext)

Beendet eine asynchrone Anforderung eines Stream-Objekts, das zum Schreiben von Daten verwendet wird und das dem Datenstrom zugeordnete TransportContext ausgibt.

EndGetResponse(IAsyncResult)

Beendet eine asynchrone Anforderung an eine Internetressource.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashwert für eine WebRequest-Instanz zurück.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Veraltet.
Veraltet.
Veraltet.

Füllt eine SerializationInfo mit den Daten auf, die zum Serialisieren des Zielobjekts erforderlich sind.

GetObjectData(SerializationInfo, StreamingContext)
Veraltet.

Füllt eine SerializationInfo mit den Daten auf, die zum Serialisieren des Zielobjekts erforderlich sind.

(Geerbt von WebRequest)
GetRequestStream()

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet werden soll.

GetRequestStream()

Gibt beim Überschreiben in einer Nachfolgerklasse einen Stream zum Schreiben von Daten in die Internetressource zurück.

(Geerbt von WebRequest)
GetRequestStream(TransportContext)

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet wird und das dem Datenstrom zugeordnete TransportContext ausgibt.

GetRequestStreamAsync()

Gibt nach dem Überschreiben in einer abgeleiteten Klasse einen Stream zurück, womit Daten in einem asynchronen Vorgang in die Internetressource geschrieben werden können.

(Geerbt von WebRequest)
GetResponse()

Gibt eine Antwort von einer Internetressource zurück.

GetResponse()

Gibt beim Überschreiben in einer Nachfolgerklasse eine Antwort auf eine Internetanforderung zurück.

(Geerbt von WebRequest)
GetResponseAsync()

Gibt beim Überschreiben in einer Nachfolgerklasse in einem asynchronen Vorgang eine Antwort auf eine Internetanforderung zurück.

(Geerbt von WebRequest)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Veraltet.
Veraltet.
Veraltet.

Füllt eine SerializationInfo mit den Daten auf, die zum Serialisieren des Zielobjekts erforderlich sind.

Gilt für

Siehe auch