Teilen über


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

Vorsicht

WebRequest, HttpWebRequest, ServicePointund WebClient sind veraltet, und Sie sollten sie nicht für die neue Entwicklung verwenden. Verwenden Sie stattdessen HttpClient.

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

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

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 ist, werden die verbleibenden Daten verworfen. Die verbleibenden Daten werden abgelassen, und der Socket wird für nachfolgende Anforderungen beim Schließen des Antwortobjekts oder Datenstroms erneut verwendet, wenn die folgenden Bedingungen enthalten sind: Es handelt sich um eine Keep-Alive- oder weitergeleitete Anforderung, nur eine kleine Menge an Daten muss empfangen werden, oder die verbleibenden Daten werden in einem kleinen Zeitintervall empfangen. Wenn keine der genannten Bedingungen gehalten wird oder die Entwässerungszeit überschritten wird, wird der Socket geschlossen. Für Keep-Alive- oder Pipelineverbindungen wird dringend empfohlen, dass die Anwendung die Datenströme bis zu EOF liest. Dadurch wird sichergestellt, dass der Socket für nachfolgende Anforderungen wiederverwendet wird, was zu einer besseren Leistung und weniger Ressourcen 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 methoden BeginGetRequestStream und EndGetRequestStream bieten asynchronen Zugriff auf den Sendedatenstrom.

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

Die HttpWebRequest Klasse löst eine WebException aus, 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.StatusWebExceptionStatus.ProtocolErrorist, enthält die Response-Eigenschaft die von der Ressource empfangenen HttpWebResponse.

HttpWebRequest macht allgemeine HTTP-Headerwerte verfügbar, die als Eigenschaften an die Internetressource gesendet werden, von 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/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 durch Eigenschaften oder Methoden oder das System festgelegt werden.

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

Anmerkung

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

Die Lokale Computer- oder Anwendungskonfigurationsdatei kann angeben, dass ein Standardproxy verwendet wird. Wenn die Proxy-Eigenschaft angegeben ist, überschreiben die Proxyeinstellungen aus der Proxy-Eigenschaft die lokale Computer- oder Anwendungskonfigurationsdatei, und die HttpWebRequest Instanz 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 von Internetoptionen auf dem lokalen Computer geerbt wurden. Wenn keine Proxyeinstellungen in Internetoptionen vorhanden sind, wird die Anforderung direkt an den Server gesendet.

Anmerkung

Das Framework speichert SSL-Sitzungen während der Erstellung zwischen und versucht, eine zwischengespeicherte Sitzung für eine neue Anforderung ggf. wiederzuverwenden. Beim Versuch, eine SSL-Sitzung wiederzuverwenden, verwendet das Framework das erste Element von ClientCertificates (sofern vorhanden), oder versucht, anonyme Sitzungen wiederzuverwenden, wenn ClientCertificates leer ist.

Anmerkung

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

.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 .NET Framework 4.6 als Ziel verwenden, 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 aufrechtzuerhalten. 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.

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

Eigenschaften

Accept

Dient zum Abrufen oder Festlegen des Werts des Accept HTTP-Headers.

Address

Ruft den URI (Uniform Resource Identifier) der Internetressource ab, die tatsächlich auf die Anforderung antwortet.

AllowAutoRedirect

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Anforderung Umleitungsantworten folgen soll.

AllowReadStreamBuffering

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die empfangene aus der Internetressource gepuffert werden soll.

AllowWriteStreamBuffering

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die an die Internetressource gesendeten Daten gepuffert werden sollen.

AuthenticationLevel

Dient zum Abrufen oder Festlegen von Werten, die die Ebene der Authentifizierung und des Identitätswechsels für diese Anforderung angeben.

(Geerbt von WebRequest)
AutomaticDecompression

Dient zum Abrufen oder Festlegen des Typs der Dekomprimierung, die verwendet wird.

CachePolicy

Dient zum Abrufen oder Festlegen der Cacherichtlinie für diese Anforderung.

(Geerbt von WebRequest)
ClientCertificates

Dient zum Abrufen oder Festlegen der Auflistung von Sicherheitszertifikaten, die dieser Anforderung zugeordnet sind.

Connection

Dient zum Abrufen oder Festlegen des Werts des Connection HTTP-Headers.

ConnectionGroupName

Dient zum Abrufen oder Festlegen des Namens der Verbindungsgruppe für die Anforderung.

ConnectionGroupName

Wenn sie in einer untergeordneten Klasse überschrieben werden, ruft den Namen der Verbindungsgruppe für die Anforderung ab oder legt sie fest.

(Geerbt von WebRequest)
ContentLength

Dient zum Abrufen oder Festlegen des Content-length HTTP-Headers.

ContentLength

Wenn sie in einer untergeordneten Klasse überschrieben werden, ruft die Inhaltslänge der gesendeten Anforderungsdaten ab oder legt sie fest.

(Geerbt von WebRequest)
ContentType

Dient zum Abrufen oder Festlegen des Werts des Content-type HTTP-Headers.

ContinueDelegate

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

ContinueTimeout

Ruft einen Timeout in Millisekunden ab, bis der 100-Continue-Wert vom Server empfangen wird, oder legt diesen fest.

CookieContainer

Ruft die Cookies ab, die der Anforderung zugeordnet sind, oder legt diese fest.

CreatorInstance
Veraltet.

Wenn eine absteigende Klasse überschrieben wird, ruft das Factoryobjekt ab, das von der IWebRequestCreate Klasse abgeleitet wird, mit der die WebRequest instanziiert werden, um die Anforderung an den angegebenen URI zu senden.

(Geerbt von WebRequest)
Credentials

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

Date

Dient zum Abrufen oder Festlegen des Date HTTP-Headerwerts, der in einer HTTP-Anforderung verwendet werden soll.

DefaultCachePolicy

Dient zum Abrufen oder Festlegen der Standardcacherichtlinie für diese Anforderung.

DefaultMaximumErrorResponseLength

Ruft die maximale Standardlänge einer HTTP-Fehlerantwort ab oder legt sie fest.

DefaultMaximumResponseHeadersLength

Dient zum Abrufen oder Festlegen des Standardwerts für die eigenschaft MaximumResponseHeadersLength.

Expect

Dient zum Abrufen oder Festlegen des Werts des Expect HTTP-Headers.

HaveResponse

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

Headers

Gibt eine Auflistung der Namen-Wert-Paare an, aus denen die HTTP-Header bestehen.

Host

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

IfModifiedSince

Dient zum Abrufen oder Festlegen des Werts des If-Modified-Since HTTP-Headers.

ImpersonationLevel

Dient zum Abrufen oder Festlegen der Identitätswechselebene für die aktuelle Anforderung.

(Geerbt von WebRequest)
KeepAlive

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine dauerhafte Verbindung mit der Internetressource hergestellt werden soll.

MaximumAutomaticRedirections

Dient zum Abrufen oder Festlegen der maximalen Anzahl von Umleitungen, die die Anforderung folgt.

MaximumResponseHeadersLength

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

MediaType

Dient zum Abrufen oder Festlegen des Medientyps der Anforderung.

Method

Dient zum Abrufen oder Festlegen der Methode für die Anforderung.

Pipelined

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Anforderung an die Internetressource weitergeleitet werden soll.

PreAuthenticate

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob ein Autorisierungsheader mit der Anforderung gesendet werden soll.

PreAuthenticate

Wenn sie in einer untergeordneten Klasse überschrieben wird, gibt sie an, ob die Anforderung vorab authentifiziert werden soll.

(Geerbt von WebRequest)
ProtocolVersion

Ruft die Version von HTTP ab, die für die Anforderung verwendet werden soll, oder legt diese fest.

Proxy

Dient zum Abrufen oder Festlegen von Proxyinformationen für die Anforderung.

Proxy

Ruft den Netzwerkproxy ab, der für den Zugriff auf diese Internetressource verwendet werden soll, oder legt diesen fest, wenn er in einer untergeordneten Klasse überschrieben wird.

(Geerbt von WebRequest)
ReadWriteTimeout

Dient zum Abrufen oder Festlegen eines Timeouts in Millisekunden beim Schreiben in oder Lesen aus einem Datenstrom.

Referer

Dient zum Abrufen oder Festlegen des Werts des Referer HTTP-Headers.

RequestUri

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

SendChunked

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Daten in Segmenten an die Internetressource gesendet werden sollen.

ServerCertificateValidationCallback

Dient zum Abrufen oder Festlegen einer Rückruffunktion zum Überprüfen des Serverzertifikats.

ServicePoint

Ruft den Dienstpunkt ab, der für die Anforderung verwendet werden soll.

SupportsCookieContainer

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

Timeout

Dient zum Abrufen oder Festlegen des Timeoutwerts in Millisekunden für die methoden GetResponse() und GetRequestStream().

Timeout

Ruft die Zeitdauer in Millisekunden ab, bevor die Anforderung timeout ist, oder legt diese fest.

(Geerbt von WebRequest)
TransferEncoding

Dient zum Abrufen oder Festlegen des Werts des Transfer-encoding HTTP-Headers.

UnsafeAuthenticatedConnectionSharing

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die NTLM-authentifizierte Verbindungsfreigabe mit hoher Geschwindigkeit zugelassen werden soll.

UseDefaultCredentials

Dient zum Abrufen oder Festlegen eines Boolean Werts, der steuert, ob Standardanmeldeinformationen mit Anforderungen gesendet werden.

UseDefaultCredentials

Wenn eine absteigende Klasse überschrieben wird, wird ein Boolean Wert abgerufen oder festgelegt, der steuert, ob DefaultCredentials mit Anforderungen gesendet werden.

(Geerbt von WebRequest)
UserAgent

Dient zum Abrufen oder Festlegen des Werts des User-agent HTTP-Headers.

Methoden

Abort()

Bricht eine Anforderung an eine Internetressource ab.

AddRange(Int32)

Fügt eine Bytebereichskopfzeile zu einer Anforderung für einen bestimmten Bereich vom Anfang oder Ende der angeforderten Daten hinzu.

AddRange(Int32, Int32)

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

AddRange(Int64)

Fügt eine Bytebereichskopfzeile zu einer Anforderung für einen bestimmten Bereich vom Anfang oder Ende der angeforderten Daten hinzu.

AddRange(Int64, Int64)

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

AddRange(String, Int32)

Fügt eine Bereichsüberschrift zu einer Anforderung für einen bestimmten Bereich vom Anfang oder Ende der angeforderten Daten hinzu.

AddRange(String, Int32, Int32)

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

AddRange(String, Int64)

Fügt eine Bereichsüberschrift zu einer Anforderung für einen bestimmten Bereich vom Anfang oder Ende der angeforderten Daten hinzu.

AddRange(String, Int64, Int64)

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

BeginGetRequestStream(AsyncCallback, Object)

Beginnt eine asynchrone Anforderung für ein Stream-Objekt zum Schreiben von Daten.

BeginGetResponse(AsyncCallback, Object)

Startet eine asynchrone Anforderung an eine Internetressource.

CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Beendet eine asynchrone Anforderung für ein Stream-Objekt zum Schreiben von Daten.

EndGetRequestStream(IAsyncResult, TransportContext)

Beendet eine asynchrone Anforderung für ein Stream-Objekt zum Schreiben von Daten und gibt die dem Datenstrom zugeordneten TransportContext aus.

EndGetResponse(IAsyncResult)

Beendet eine asynchrone Anforderung an eine Internetressource.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

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

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie 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 zum Schreiben von Anforderungsdaten ab.

GetRequestStream()

Wenn sie in einer untergeordneten Klasse überschrieben wird, wird ein Stream zum Schreiben von Daten in die Internetressource zurückgegeben.

(Geerbt von WebRequest)
GetRequestStream(TransportContext)

Ruft ein Stream -Objekt zum Schreiben von Anforderungsdaten und gibt die dem Datenstrom zugeordnete TransportContext aus.

GetRequestStreamAsync()

Wenn eine absteigende Klasse überschrieben wird, wird ein Stream zum Schreiben von Daten in die Internetressource als asynchroner Vorgang zurückgegeben.

(Geerbt von WebRequest)
GetResponse()

Gibt eine Antwort von einer Internetressource zurück.

GetResponse()

Wenn sie in einer untergeordneten Klasse überschrieben wird, wird eine Antwort auf eine Internetanforderung zurückgegeben.

(Geerbt von WebRequest)
GetResponseAsync()

Wenn eine absteigende Klasse außer Kraft gesetzt wird, wird eine Antwort auf eine Internetanforderung als asynchroner Vorgang zurückgegeben.

(Geerbt von WebRequest)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie der 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