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 für den 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, die Verwendung für neue Entwicklungen zu verwenden HttpWebRequest . Verwenden Sie stattdessen die System.Net.Http.HttpClient -Klasse.

Die HttpWebRequest -Klasse bietet Unterstützung für die in WebRequest und definierten Eigenschaften und Methoden für zusätzliche Eigenschaften und Methoden, die es dem Benutzer ermöglichen, direkt mit Servern über HTTP zu interagieren.

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) oder isthttp://, Create gibt ein -Objekt zurückHttpWebRequest.https://

Die GetResponse -Methode stellt eine synchrone Anforderung an die in der RequestUri -Eigenschaft angegebene Ressource und gibt eine HttpWebResponse zurück, die das Antwortobjekt enthält. Die Antwortdaten können mithilfe des von GetResponseStreamzurückgegebenen Datenstroms empfangen werden. Wenn das Antwortobjekt oder der Antwortdatenstrom geschlossen wird, verfallen die verbleibenden Daten. Die restlichen Daten werden entladen, und der Socket wird für nachfolgende Anforderungen wieder verwendet, wenn das Antwortobjekt oder -stream geschlossen wird, wenn die folgenden Bedingungen gelten: Es handelt sich um eine Keep-Alive- oder Pipelineanforderung, nur eine kleine Menge an Daten muss empfangen werden, oder die verbleibenden Daten werden in einem kleinen Zeitintervall empfangen. Wenn keine der genannten Bedingungen hält oder die Abflusszeit überschritten wird, wird die Steckdose geschlossen. Für Keep-Alive- oder Pipelineverbindungen wird dringend empfohlen, dass die Anwendung die Streams bis zum EOF liest. Dadurch wird sichergestellt, dass der Socket für nachfolgende Anforderungen wiederverwendet wird, was zu einer besseren Leistung und weniger Ressourcenaufwand führt.

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 und EndGetRequestStream bieten asynchronen Zugriff auf den Sendedatenstrom.

Für die Clientauthentifizierung mit HttpWebRequestmuss das Clientzertifikat im Speicher "Mein Zertifikat" des aktuellen Benutzers installiert sein.

Die HttpWebRequest -Klasse löst einen aus WebException , wenn beim Zugriff auf eine Ressource Fehler auftreten. Die WebException.Status -Eigenschaft enthält einen WebExceptionStatus Wert, der die Quelle des Fehlers angibt. Wenn WebException.Status ist WebExceptionStatus.ProtocolError, enthält die Response -Eigenschaft das HttpWebResponse von der Ressource empfangene.

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

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

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

Hinweis

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

In der Konfigurationsdatei des lokalen Computers oder der Anwendung kann angegeben werden, dass ein Standardproxy verwendet werden soll. Wenn die Proxy -Eigenschaft angegeben wird, überschreiben die Proxyeinstellungen der Proxy Eigenschaft die konfigurationsdatei des lokalen Computers oder der Anwendung, und der HttpWebRequest instance verwendet die angegebenen Proxyeinstellungen. Wenn in einer Konfigurationsdatei kein Proxy angegeben ist und die Proxy Eigenschaft nicht angegeben ist, verwendet die HttpWebRequest Klasse die Proxyeinstellungen, die vom Internet Explorer auf dem lokalen Computer geerbt wurden. Wenn keine Proxyeinstellungen im Internet Explorer vorhanden sind, wird die Anforderung direkt an den Server gesendet.

Die HttpWebRequest Klasse analysiert eine Proxyumgehungsliste mit Platzhalterzeichen, die vom Internet geerbt Explorer anders als die Umgehungsliste direkt vom Internet Explorer analysiert wird. Beispielsweise analysiert die HttpWebRequest Klasse eine Umgehungsliste von "nt*" aus dem Internet Explorer als regulären Ausdruck von "nt.$". Dies unterscheidet sich vom nativen 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.

Hinweis

Das Framework speichert SSL-Sitzungen während der Erstellung zwischen und versucht, nach Möglichkeit eine zwischengespeicherte Sitzung für eine neue Anforderung wiederzuverwenden. Beim Versuch, eine SSL-Sitzung wiederzuverwenden, verwendet das Framework das erste Element von ClientCertificates (sofern 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.

Die .NET Framework 4.6 enthält ein neues Sicherheitsfeature, das unsichere Verschlüsselungs- und Hashingalgorithmen 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 mit RC4-Diensten aufrechtzuerhalten. In diesem Artikel wird erläutert, wie Sie Ihren Code so ändern, dass das neue Verhalten deaktiviert wird.

Konstruktoren

HttpWebRequest()
Veraltet.
Veraltet.

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

HttpWebRequest(SerializationInfo, StreamingContext)
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.

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 If-Modified-Since-HTTP-Headers ab oder legt ihn 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.

Erweiterungsmethoden

GetRequestMetadata(HttpWebRequest)

Ruft Metadaten für ausgehende Anforderungen ab, die für Telemetriezwecke verwendet werden sollen.

SetRequestMetadata(HttpWebRequest, RequestMetadata)

Legt Metadaten für ausgehende Anforderungen fest, die für Telemetriezwecke verwendet werden sollen.

Gilt für:

Weitere Informationen