HttpWebRequest Klasa

Definicja

Zapewnia implementację WebRequest klasy specyficzną dla protokołu HTTP.

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
Dziedziczenie
HttpWebRequest
Dziedziczenie
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu tworzy element HttpWebRequest dla identyfikatora URI http://www.contoso.com/.

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/")

Uwagi

Ważne

Nie zalecamy używania ich HttpWebRequest do tworzenia nowych aplikacji. Zamiast tego użyj System.Net.Http.HttpClient klasy .

Klasa HttpWebRequest zapewnia obsługę właściwości i metod zdefiniowanych w WebRequest oraz dla dodatkowych właściwości i metod, które umożliwiają użytkownikowi bezpośrednią interakcję z serwerami przy użyciu protokołu HTTP.

Nie używaj konstruktora HttpWebRequest . WebRequest.Create Użyj metody , aby zainicjować nowe HttpWebRequest obiekty. Jeśli schemat identyfikatora URI (Uniform Resource Identifier) to http:// lub https://, Create zwraca HttpWebRequest obiekt .

Metoda GetResponse tworzy synchroniczne żądanie do zasobu określonego RequestUri we właściwości i zwraca obiekt HttpWebResponse , który zawiera obiekt odpowiedzi. Dane odpowiedzi mogą być odbierane przy użyciu strumienia zwróconego przez GetResponseStreammetodę . Jeśli obiekt odpowiedzi lub strumień odpowiedzi zostanie zamknięty, pozostałe dane zostaną przepadnięte. Pozostałe dane zostaną opróżnione, a gniazdo zostanie ponownie użyte do kolejnych żądań podczas zamykania obiektu odpowiedzi lub strumienia, jeśli są przechowywane następujące warunki: jest to żądanie o zachowaniu aktywności lub potoku, należy odebrać tylko niewielką ilość danych lub pozostałe dane są odbierane w małym przedziale czasu. Jeśli żaden z wymienionych warunków nie zostanie wstrzymany lub przekroczono czas odpływu, gniazdo zostanie zamknięte. W przypadku połączeń utrzymywania aktywności lub połączeń potokowych zdecydowanie zalecamy, aby aplikacja odczytywała strumienie do czasu EOF. Dzięki temu gniazdo zostanie ponownie użyte dla kolejnych żądań, co zapewni lepszą wydajność i mniejsze zasoby.

Gdy chcesz wysłać dane do zasobu, GetRequestStream metoda zwraca Stream obiekt używany do wysyłania danych. Metody BeginGetRequestStream i EndGetRequestStream zapewniają asynchroniczny dostęp do strumienia danych wysyłania.

W przypadku uwierzytelniania klienta za pomocą HttpWebRequestprogramu certyfikat klienta musi być zainstalowany w magazynie Mojego certyfikatu bieżącego użytkownika.

Klasa HttpWebRequest zgłasza błąd WebException , gdy wystąpią błędy podczas uzyskiwania dostępu do zasobu. Właściwość WebException.Status zawiera wartość wskazującą WebExceptionStatus źródło błędu. Gdy WebException.Status parametr ma WebExceptionStatus.ProtocolErrorwartość , Response właściwość zawiera odebrane HttpWebResponse z zasobu.

HttpWebRequest Uwidacznia typowe wartości nagłówka HTTP wysyłane do zasobu internetowego jako właściwości, ustawiane przez metody lub ustawiane przez system; Poniższa tabela zawiera pełną listę. Możesz ustawić inne nagłówki we Headers właściwości jako pary nazwa/wartość. Pamiętaj, że serwery i pamięci podręczne mogą zmieniać lub dodawać nagłówki podczas żądania.

W poniższej tabeli wymieniono nagłówki HTTP ustawiane za pomocą właściwości lub metod albo systemu.

Nagłówek Ustaw według
Accept Ustaw według Accept właściwości .
Connection Ustaw według Connection właściwości , KeepAlive właściwość .
Content-Length Ustaw według ContentLength właściwości .
Content-Type Ustaw według ContentType właściwości .
Expect Ustaw według Expect właściwości .
Date Ustaw przez system bieżącą datę.
Host Ustaw przez system na bieżące informacje o hoście.
If-Modified-Since Ustaw według IfModifiedSince właściwości .
Range Ustaw za AddRange pomocą metody .
Referer Ustaw według Referer właściwości .
Transfer-Encoding Ustaw właściwość ( TransferEncodingSendChunked właściwość musi mieć wartość true).
User-Agent Ustaw według UserAgent właściwości .

Uwaga

HttpWebRequest jest rejestrowany automatycznie. Nie trzeba wywoływać RegisterPrefix metody , aby zarejestrować System.Net.HttpWebRequest się przed użyciem identyfikatorów URI rozpoczynających się od http:// lub https://.

Plik konfiguracji komputera lokalnego lub aplikacji może określać, że jest używany domyślny serwer proxy. Proxy Jeśli właściwość jest określona, ustawienia serwera proxy z Proxy właściwości przesłaniają plik konfiguracji komputera lokalnego lub aplikacji, a HttpWebRequest wystąpienie będzie używać określonych ustawień serwera proxy. Jeśli w pliku konfiguracji nie określono żadnego serwera proxy, a Proxy właściwość jest nieokreślona, HttpWebRequest klasa używa ustawień serwera proxy dziedziczonych z programu Internet Explorer na komputerze lokalnym. Jeśli w programie Internet Explorer nie ma żadnych ustawień serwera proxy, żądanie jest wysyłane bezpośrednio do serwera.

Klasa HttpWebRequest analizuje listę obejścia serwera proxy z symbolami wieloznacznymi dziedziczone z programu Internet Explorer inaczej niż lista pomijania jest analizowana bezpośrednio przez program Internet Explorer. Na przykład HttpWebRequest klasa przeanalizuje listę obejścia "nt*" z programu Internet Explorer jako wyrażenie regularne "nt.$". Różni się to od natywnego zachowania programu Internet Explorer. Dlatego adres URL "http://intxxxxx" pomija serwer proxy przy użyciu HttpWebRequest klasy , ale nie pomija serwera proxy przy użyciu programu Internet Explorer.

Uwaga

Platforma buforuje sesje SSL podczas ich tworzenia i próbuje ponownie użyć sesji buforowanej dla nowego żądania, jeśli to możliwe. Podczas próby ponownego użycia sesji SSL platforma używa pierwszego elementu ClientCertificates (jeśli istnieje) lub próbuje ponownie użyć sesji anonimowych, jeśli ClientCertificates jest pusty.

Uwaga

Ze względów bezpieczeństwa pliki cookie są domyślnie wyłączone. Jeśli chcesz używać plików cookie, użyj CookieContainer właściwości , aby włączyć pliki cookie.

.NET Framework 4.6 zawiera nową funkcję zabezpieczeń, która blokuje niezabezpieczone algorytmy szyfrowania i tworzenia skrótów dla połączeń. Aplikacje korzystające z protokołu TLS/SSL za pośrednictwem interfejsów API, takich jak HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream itp., i określania wartości docelowych .NET Framework 4.6 domyślnie uzyskują bezpieczniejsze zachowanie.

Deweloperzy mogą zrezygnować z tego zachowania, aby zachować współdziałanie z istniejącymi usługami SSL3 lub TLS w/ RC4. W tym artykule wyjaśniono, jak zmodyfikować kod tak, aby nowe zachowanie było wyłączone.

Konstruktory

HttpWebRequest()
Przestarzałe.
Przestarzałe.

Inicjuje nowe wystąpienie klasy HttpWebRequest. Ten konstruktor jest przestarzały.

HttpWebRequest(SerializationInfo, StreamingContext)
Przestarzałe.
Przestarzałe.
Przestarzałe.
Przestarzałe.

Inicjuje nowe wystąpienie HttpWebRequest klasy z określonych wystąpień SerializationInfo klas i StreamingContext . Ten konstruktor jest przestarzały.

Właściwości

Accept

Pobiera lub ustawia wartość nagłówka Accept HTTP.

Address

Pobiera identyfikator URI (Uniform Resource Identifier) zasobu internetowego, który faktycznie odpowiada na żądanie.

AllowAutoRedirect

Pobiera lub ustawia wartość wskazującą, czy żądanie powinno być zgodne z odpowiedziami przekierowania.

AllowReadStreamBuffering

Pobiera lub ustawia wartość, która wskazuje, czy buforować odebrane z zasobu internetowego.

AllowWriteStreamBuffering

Pobiera lub ustawia wartość wskazującą, czy buforować dane wysyłane do zasobu internetowego.

AuthenticationLevel

Pobiera lub ustawia wartości wskazujące poziom uwierzytelniania i personifikacji używane dla tego żądania.

(Odziedziczone po WebRequest)
AutomaticDecompression

Pobiera lub ustawia typ używanej dekompresji.

CachePolicy

Pobiera lub ustawia zasady pamięci podręcznej dla tego żądania.

(Odziedziczone po WebRequest)
ClientCertificates

Pobiera lub ustawia kolekcję certyfikatów zabezpieczeń skojarzonych z tym żądaniem.

Connection

Pobiera lub ustawia wartość nagłówka Connection HTTP.

ConnectionGroupName

Pobiera lub ustawia nazwę grupy połączeń dla żądania.

ConnectionGroupName

Po zastąpieniu w klasie potomnej pobiera lub ustawia nazwę grupy połączeń dla żądania.

(Odziedziczone po WebRequest)
ContentLength

Pobiera lub ustawia Content-length nagłówek HTTP.

ContentLength

Po przesłonięciu w klasie potomnej pobiera lub ustawia długość zawartości wysyłanych danych żądania.

(Odziedziczone po WebRequest)
ContentType

Pobiera lub ustawia wartość nagłówka Content-type HTTP.

ContinueDelegate

Pobiera lub ustawia metodę delegata wywoływaną po odebraniu odpowiedzi HTTP 100-continue z zasobu internetowego.

ContinueTimeout

Pobiera lub ustawia limit czasu (w milisekundach), aby poczekać na odebranie 100-Continue z serwera.

CookieContainer

Pobiera lub ustawia pliki cookie skojarzone z żądaniem.

CreatorInstance
Przestarzałe.

Po zastąpieniu w klasie potomnej pobiera obiekt fabryki pochodzący z IWebRequestCreate klasy użytej do utworzenia WebRequest wystąpienia żądania do określonego identyfikatora URI.

(Odziedziczone po WebRequest)
Credentials

Pobiera lub ustawia informacje uwierzytelniania dla żądania.

Date

Pobiera lub ustawia wartość nagłówka Date HTTP do użycia w żądaniu HTTP.

DefaultCachePolicy

Pobiera lub ustawia domyślne zasady pamięci podręcznej dla tego żądania.

DefaultMaximumErrorResponseLength

Pobiera lub ustawia domyślną maksymalną długość odpowiedzi błędu HTTP.

DefaultMaximumResponseHeadersLength

Pobiera lub ustawia wartość domyślną MaximumResponseHeadersLength dla właściwości .

Expect

Pobiera lub ustawia wartość nagłówka Expect HTTP.

HaveResponse

Pobiera wartość wskazującą, czy odpowiedź została odebrana z zasobu internetowego.

Headers

Określa kolekcję par nazwa/wartość, które składają się na nagłówki HTTP.

Host

Pobiera lub ustawia wartość nagłówka hosta do użycia w żądaniu HTTP niezależnie od identyfikatora URI żądania.

IfModifiedSince

Pobiera lub ustawia wartość nagłówka If-Modified-Since HTTP.

ImpersonationLevel

Pobiera lub ustawia poziom personifikacji dla bieżącego żądania.

(Odziedziczone po WebRequest)
KeepAlive

Pobiera lub ustawia wartość wskazującą, czy nawiązać trwałe połączenie z zasobem internetowym.

MaximumAutomaticRedirections

Pobiera lub ustawia maksymalną liczbę przekierowań, które następuje po żądaniu.

MaximumResponseHeadersLength

Pobiera lub ustawia maksymalną dozwoloną długość nagłówków odpowiedzi.

MediaType

Pobiera lub ustawia typ nośnika żądania.

Method

Pobiera lub ustawia metodę żądania.

Pipelined

Pobiera lub ustawia wartość wskazującą, czy żądanie ma być potokiem do zasobu internetowego.

PreAuthenticate

Pobiera lub ustawia wartość wskazującą, czy wysłać nagłówek autoryzacji z żądaniem.

PreAuthenticate

Po przesłonięciu w klasie potomnej wskazuje, czy wstępnie uwierzytelnić żądanie.

(Odziedziczone po WebRequest)
ProtocolVersion

Pobiera lub ustawia wersję protokołu HTTP do użycia dla żądania.

Proxy

Pobiera lub ustawia informacje o serwerze proxy dla żądania.

Proxy

Po przesłonięciu w klasie potomnej program pobiera lub ustawia serwer proxy sieci w celu uzyskania dostępu do tego zasobu internetowego.

(Odziedziczone po WebRequest)
ReadWriteTimeout

Pobiera lub ustawia limit czasu w milisekundach podczas zapisywania do lub odczytywania ze strumienia.

Referer

Pobiera lub ustawia wartość nagłówka Referer HTTP.

RequestUri

Pobiera oryginalny identyfikator URI (Uniform Resource Identifier) żądania.

SendChunked

Pobiera lub ustawia wartość wskazującą, czy dane mają być wysyłane w segmentach do zasobu internetowego.

ServerCertificateValidationCallback

Pobiera lub ustawia funkcję wywołania zwrotnego w celu zweryfikowania certyfikatu serwera.

ServicePoint

Pobiera punkt usługi do użycia dla żądania.

SupportsCookieContainer

Pobiera wartość wskazującą, czy żądanie zapewnia obsługę elementu CookieContainer.

Timeout

Pobiera lub ustawia wartość limitu czasu w milisekundach dla GetResponse() metod i GetRequestStream() .

Timeout

Pobiera lub ustawia czas (w milisekundach) przed upływem limitu czasu żądania.

(Odziedziczone po WebRequest)
TransferEncoding

Pobiera lub ustawia wartość nagłówka Transfer-encoding HTTP.

UnsafeAuthenticatedConnectionSharing

Pobiera lub ustawia wartość wskazującą, czy zezwalać na szybkie udostępnianie połączeń uwierzytelnionych przy użyciu protokołu NTLM.

UseDefaultCredentials

Pobiera lub ustawia Boolean wartość, która określa, czy poświadczenia domyślne są wysyłane z żądaniami.

UseDefaultCredentials

Po przesłonięciu w klasie potomnej pobiera lub ustawia Boolean wartość, która określa, czy DefaultCredentials są wysyłane z żądaniami.

(Odziedziczone po WebRequest)
UserAgent

Pobiera lub ustawia wartość nagłówka User-agent HTTP.

Metody

Abort()

Anuluje żądanie do zasobu internetowego.

AddRange(Int32)

Dodaje nagłówek zakresu bajtów do żądania dla określonego zakresu od początku lub końca żądanych danych.

AddRange(Int32, Int32)

Dodaje nagłówek zakresu bajtów do żądania dla określonego zakresu.

AddRange(Int64)

Dodaje nagłówek zakresu bajtów do żądania dla określonego zakresu od początku lub końca żądanych danych.

AddRange(Int64, Int64)

Dodaje nagłówek zakresu bajtów do żądania dla określonego zakresu.

AddRange(String, Int32)

Dodaje nagłówek Zakres do żądania dla określonego zakresu od początku lub końca żądanych danych.

AddRange(String, Int32, Int32)

Dodaje nagłówek zakresu do żądania dla określonego zakresu.

AddRange(String, Int64)

Dodaje nagłówek Zakres do żądania dla określonego zakresu od początku lub końca żądanych danych.

AddRange(String, Int64, Int64)

Dodaje nagłówek zakresu do żądania dla określonego zakresu.

BeginGetRequestStream(AsyncCallback, Object)

Rozpoczyna żądanie asynchroniczne dla Stream obiektu używanego do zapisywania danych.

BeginGetResponse(AsyncCallback, Object)

Rozpoczyna żądanie asynchroniczne do zasobu internetowego.

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Kończy asynchroniczne żądanie dla Stream obiektu używanego do zapisywania danych.

EndGetRequestStream(IAsyncResult, TransportContext)

Kończy asynchroniczne żądanie dla Stream obiektu używanego do zapisywania danych i wyprowadzania TransportContext skojarzonych ze strumieniem.

EndGetResponse(IAsyncResult)

Kończy żądanie asynchroniczne do zasobu internetowego.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Zwraca wartość skrótu WebRequest dla wystąpienia.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Przestarzałe.
Przestarzałe.
Przestarzałe.

Wypełnia element SerializationInfo danymi wymaganymi do serializacji obiektu docelowego.

GetObjectData(SerializationInfo, StreamingContext)
Przestarzałe.

Wypełnia element SerializationInfo danymi wymaganymi do serializacji obiektu docelowego.

(Odziedziczone po WebRequest)
GetRequestStream()

Pobiera obiekt używany do zapisywania Stream danych żądania.

GetRequestStream()

Po przesłonięciu w klasie potomnej funkcja zwraca Stream element do zapisywania danych w zasobie internetowym.

(Odziedziczone po WebRequest)
GetRequestStream(TransportContext)

Pobiera obiekt używany do zapisywania Stream danych żądania i wyprowadza TransportContext dane skojarzone ze strumieniem.

GetRequestStreamAsync()

Po przesłonięciu w klasie potomnej funkcja zwraca Stream element do zapisywania danych w zasobie internetowym jako operację asynchroniczną.

(Odziedziczone po WebRequest)
GetResponse()

Zwraca odpowiedź z zasobu internetowego.

GetResponse()

Po przesłonięciu w klasie potomnej zwraca odpowiedź na żądanie internetowe.

(Odziedziczone po WebRequest)
GetResponseAsync()

Po przesłonięciu w klasie potomnej zwraca odpowiedź na żądanie internetowe jako operację asynchroniczną.

(Odziedziczone po WebRequest)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
Przestarzałe.
Przestarzałe.
Przestarzałe.

Wypełnia element SerializationInfo danymi wymaganymi do serializacji obiektu docelowego.

Metody rozszerzania

GetRequestMetadata(HttpWebRequest)

Pobiera metadane dla żądań wychodzących, które mają być używane do celów telemetrycznych.

SetRequestMetadata(HttpWebRequest, RequestMetadata)

Ustawia metadane dla żądań wychodzących, które mają być używane do celów telemetrycznych.

Dotyczy

Zobacz też