HttpWebRequest Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia implementację klasy WebRequest 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
- Dziedziczenie
- Atrybuty
- Implementuje
Przykłady
Poniższy przykład kodu tworzy 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
Ostrożność
WebRequest
, HttpWebRequest
, ServicePoint
i WebClient
są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.
Klasa HttpWebRequest zapewnia obsługę właściwości i metod zdefiniowanych w WebRequest oraz 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. Użyj metody WebRequest.Create, aby zainicjować nowe obiekty HttpWebRequest. Jeśli schemat identyfikatora URI (Uniform Resource Identifier) jest http://
lub https://
, Create zwraca obiekt HttpWebRequest.
Metoda GetResponse wykonuje synchroniczne żądanie do zasobu określonego we właściwości RequestUri i zwraca HttpWebResponse, który zawiera obiekt odpowiedzi. Dane odpowiedzi można odebrać przy użyciu strumienia zwróconego przez GetResponseStream. Jeśli obiekt odpowiedzi lub strumień odpowiedzi zostanie zamknięty, pozostałe dane zostaną umorzone. Pozostałe dane zostaną opróżnione, a gniazdo zostanie ponownie użyte do kolejnych żądań podczas zamykania obiektu odpowiedzi lub strumienia, jeśli zostaną wstrzymane 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 niewielkim przedziale czasu. Jeśli żadne ze wspomnianych warunków nie zostanie wstrzymane lub zostanie przekroczony czas odpływu, gniazdo zostanie zamknięte. W przypadku połączeń o zachowaniu aktywności lub potoku 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.
Jeśli chcesz wysłać dane do zasobu, metoda GetRequestStream zwraca obiekt Stream do użycia do wysyłania danych. Metody BeginGetRequestStream i EndGetRequestStream zapewniają asynchroniczny dostęp do strumienia danych wysyłania.
W przypadku uwierzytelniania klienta przy użyciu HttpWebRequestcertyfikat klienta musi być zainstalowany w magazynie Mój certyfikat bieżącego użytkownika.
Klasa HttpWebRequest zgłasza WebException, gdy występują błędy podczas uzyskiwania dostępu do zasobu. Właściwość WebException.Status zawiera wartość WebExceptionStatus wskazującą źródło błędu. Gdy WebException.Status jest WebExceptionStatus.ProtocolError, właściwość Response zawiera HttpWebResponse odebrane z zasobu.
HttpWebRequest uwidacznia typowe wartości nagłówka HTTP wysyłane do zasobu internetowego jako właściwości, ustawiane według metod lub ustawiane przez system; poniższa tabela zawiera pełną listę. Możesz ustawić inne nagłówki we właściwości Headers jako pary nazwa/wartość. Należy pamiętać, że serwery i pamięci podręczne mogą zmieniać lub dodawać nagłówki podczas żądania.
W poniższej tabeli wymieniono nagłówki HTTP, które są ustawiane przez właściwości lub metody lub system.
Nagłówek | Ustaw według |
---|---|
Accept |
Ustaw właściwość Accept. |
Connection |
Ustaw właściwość ConnectionKeepAlive. |
Content-Length |
Ustaw właściwość ContentLength. |
Content-Type |
Ustaw właściwość ContentType. |
Expect |
Ustaw właściwość Expect. |
Date |
Ustaw przez system bieżącą datę. |
Host |
Ustaw przez system na bieżące informacje o hoście. |
If-Modified-Since |
Ustaw właściwość IfModifiedSince. |
Range |
Ustaw metodę AddRange. |
Referer |
Ustaw właściwość Referer. |
Transfer-Encoding |
Ustaw właściwość TransferEncoding (właściwość SendChunked musi być true ). |
User-Agent |
Ustaw właściwość UserAgent. |
Nuta
HttpWebRequest jest rejestrowany automatycznie. Nie musisz wywoływać metody RegisterPrefix, aby zarejestrować System.Net.HttpWebRequest 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. Jeśli zostanie określona właściwość Proxy, ustawienia serwera proxy z właściwości Proxy zastąpią plik konfiguracji komputera lokalnego lub aplikacji, a wystąpienie HttpWebRequest użyje określonych ustawień serwera proxy. Jeśli w pliku konfiguracji nie określono żadnego serwera proxy, a właściwość Proxy jest nieokreślona, klasa HttpWebRequest używa ustawień serwera proxy dziedziczonych z opcji internetowych na komputerze lokalnym. Jeśli w opcjach internetowych nie ma żadnych ustawień serwera proxy, żądanie jest wysyłane bezpośrednio do serwera.
Nuta
Platforma buforuje sesje SSL podczas ich tworzenia i próbuje ponownie użyć buforowanej sesji 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 pusta.
Nuta
Ze względów bezpieczeństwa pliki cookie są domyślnie wyłączone. Jeśli chcesz używać plików cookie, użyj właściwości CookieContainer, aby włączyć pliki cookie.
Program .NET Framework 4.6 zawiera nową funkcję zabezpieczeń, która blokuje niezabezpieczone algorytmy szyfrowania i 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 przeznaczone dla platformy .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 klasy HttpWebRequest z określonych wystąpień klas SerializationInfo i StreamingContext. Ten konstruktor jest przestarzały. |
Właściwości
Accept |
Pobiera lub ustawia wartość nagłówka 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ść wskazującą, czy buforować odebrane z zasobu internetowego. |
AllowWriteStreamBuffering |
Pobiera lub ustawia wartość wskazującą, czy dane wysyłane do zasobu internetowego mają być buforowe. |
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 dekompresji, który jest używany. |
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 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 |
ContentLength |
Po zastąpieniu w klasie potomnej pobiera lub ustawia długość zawartości wysyłanych danych żądania. (Odziedziczone po WebRequest) |
ContentType |
Pobiera lub ustawia wartość nagłówka 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 klasy IWebRequestCreate użytej do utworzenia wystąpienia WebRequest do utworzenia żądania do określonego identyfikatora URI. (Odziedziczone po WebRequest) |
Credentials |
Pobiera lub ustawia informacje uwierzytelniania dla żądania. |
Date |
Pobiera lub ustawia wartość nagłówka 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ą dla właściwości MaximumResponseHeadersLength. |
Expect |
Pobiera lub ustawia wartość nagłówka 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 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 należy utworzyć potok żądania do zasobu internetowego. |
PreAuthenticate |
Pobiera lub ustawia wartość wskazującą, czy wysłać nagłówek autoryzacji z żądaniem. |
PreAuthenticate |
Po zastąpieniu 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 zastąpieniu klasy potomnej pobiera lub ustawia serwer proxy sieci do użycia w celu uzyskania dostępu do tego zasobu internetowego. (Odziedziczone po WebRequest) |
ReadWriteTimeout |
Pobiera lub ustawia limit czasu w milisekundach podczas zapisywania lub odczytywania ze strumienia. |
Referer |
Pobiera lub ustawia wartość nagłówka HTTP |
RequestUri |
Pobiera oryginalny identyfikator URI żą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ę CookieContainer. |
Timeout |
Pobiera lub ustawia wartość limitu czasu w milisekundach dla metod GetResponse() i GetRequestStream(). |
Timeout |
Pobiera lub ustawia czas (w milisekundach) przed przekroczeniem limitu czasu żądania. (Odziedziczone po WebRequest) |
TransferEncoding |
Pobiera lub ustawia wartość nagłówka 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 wartość Boolean, która określa, czy poświadczenia domyślne są wysyłane z żądaniami. |
UseDefaultCredentials |
Po zastąpieniu klasy potomnej pobiera lub ustawia Boolean wartość, która kontroluje, czy DefaultCredentials są wysyłane z żądaniami. (Odziedziczone po WebRequest) |
UserAgent |
Pobiera lub ustawia wartość nagłówka 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 obiektu Stream 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 żądanie asynchroniczne dla obiektu Stream do użycia do zapisywania danych. |
EndGetRequestStream(IAsyncResult, TransportContext) |
Kończy żądanie asynchroniczne dla obiektu Stream, które ma być używane do zapisywania danych i wyprowadzania TransportContext skojarzonych ze strumieniem. |
EndGetResponse(IAsyncResult) |
Kończy żądanie asynchroniczne do zasobu internetowego. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
GetHashCode() |
Zwraca wartość skrótu dla wystąpienia WebRequest. |
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 SerializationInfo danymi wymaganymi do serializacji obiektu docelowego. |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
Wypełnia SerializationInfo danymi potrzebnymi do serializacji obiektu docelowego. (Odziedziczone po WebRequest) |
GetRequestStream() |
Pobiera obiekt Stream do zapisywania danych żądania. |
GetRequestStream() |
Po zastąpieniu klasy potomnej zwraca Stream do zapisywania danych w zasobie internetowym. (Odziedziczone po WebRequest) |
GetRequestStream(TransportContext) |
Pobiera obiekt Stream używany do zapisywania danych żądania i wyprowadzania TransportContext skojarzonych ze strumieniem. |
GetRequestStreamAsync() |
Po zastąpieniu w klasie potomnej zwraca Stream do zapisywania danych do zasobu internetowego jako operacji asynchronicznej. (Odziedziczone po WebRequest) |
GetResponse() |
Zwraca odpowiedź z zasobu internetowego. |
GetResponse() |
Po zastąpieniu klasy potomnej zwraca odpowiedź na żądanie internetowe. (Odziedziczone po WebRequest) |
GetResponseAsync() |
Po zastąpieniu w klasie potomnej zwraca odpowiedź na żądanie internetowe jako operację asynchroniczną. (Odziedziczone po WebRequest) |
GetType() |
Pobiera Type 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 Object. (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego obiektu MarshalByRefObject. (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 SerializationInfo danymi potrzebnymi 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. |