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ę 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
- Dziedziczenie
- Atrybuty
- Implementuje
Przykłady
Poniższy przykład kodu tworzy identyfikator HttpWebRequest 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 programie 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 . Użyj metody , WebRequest.Create aby zainicjować nowe HttpWebRequest obiekty. Jeśli schemat identyfikatora URI (Uniform Resource Identifier) to http://
lub https://
, Create zwraca HttpWebRequest obiekt.
Metoda GetResponse wykonuje synchroniczne żądanie do zasobu określonego RequestUri we właściwości i zwraca obiekt HttpWebResponse odpowiedzi. Dane odpowiedzi można odbierać przy użyciu strumienia zwróconego przez GetResponseStreamusługę . 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 spełnione są następujące warunki: jest to żądanie utrzymania aktywności lub potoku, tylko niewielka ilość danych musi zostać odebrana lub pozostałe dane są odbierane w niewielkim przedziale czasu. Jeśli żaden z wymienionych warunków nie zostanie wstrzymany lub czas opróżnienia zostanie przekroczony, gniazdo zostanie zamknięte. W przypadku połączeń utrzymywania aktywności lub potoków 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, który ma być 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 należy zainstalować certyfikat klienta w magazynie Certyfikat mój bieżącego użytkownika.
Klasa HttpWebRequest zgłasza WebException błąd podczas uzyskiwania dostępu do zasobu. Właściwość WebException.Status zawiera wartość wskazującą WebExceptionStatus źródło błędu. Gdy WebException.Status jest to WebExceptionStatus.ProtocolError, 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 według metod 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ść. 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 ustawione według właściwości lub metod lub 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 na 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 przez metodę AddRange . |
Referer |
Ustaw według Referer właściwości. |
Transfer-Encoding |
Ustaw według TransferEncoding właściwości ( SendChunked właściwość musi mieć true wartość ). |
User-Agent |
Ustaw według UserAgent właściwości. |
Uwaga
HttpWebRequest jest rejestrowany automatycznie. Nie trzeba wywoływać RegisterPrefix metody , aby zarejestrować się 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. Proxy Jeśli właściwość zostanie określona, ustawienia serwera proxy z Proxy właściwości zastąpią 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 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 obejścia 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 struktura używa pierwszego elementu ClientCertificates (jeśli istnieje) lub próbuje ponownie użyć sesji anonimowych, jeśli ClientCertificates jest pusta.
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 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 docelowe .NET Framework 4.6 domyślnie uzyskują bardziej bezpieczne 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() |
Nieaktualne.
Nieaktualne.
Inicjuje nowe wystąpienie klasy HttpWebRequest. Ten konstruktor jest przestarzały. |
HttpWebRequest(SerializationInfo, StreamingContext) |
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.
Inicjuje HttpWebRequest nowe wystąpienie klasy z określonych wystąpień SerializationInfo klas i StreamingContext . Ten konstruktor jest przestarzały. |
HttpWebRequest(Uri) |
Właściwości
Accept |
Pobiera lub ustawia wartość nagłówka |
Address |
Pobiera identyfikator URI (Uniform Resource Identifier) zasobu internetowego, który rzeczywiście 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 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 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 |
ConnectionGroupName |
Pobiera lub ustawia nazwę grupy połączeń dla żądania. |
ConnectionGroupName |
Gdy zastąpisz klasę potomną, pobiera lub ustawia nazwę grupy połączeń dla żądania. (Odziedziczone po WebRequest) |
ContentLength |
Pobiera lub ustawia |
ContentLength |
Gdy zastąpisz klasę potomną, pobiera lub ustawia długość zawartości wysyłanych danych żądania. (Odziedziczone po WebRequest) |
ContentType |
Pobiera lub ustawia wartość nagłówka |
ContinueDelegate |
Pobiera lub ustawia metodę delegata wywoływaną, gdy odpowiedź HTTP 100-continue jest odbierana 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 |
Nieaktualne.
Po zastąpieniu klasy 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 |
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 |
HaveResponse |
Pobiera wartość wskazującą, czy odpowiedź została odebrana z zasobu internetowego. |
Headers |
Określa kolekcję par nazw/wartości, 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 żądanie ma być potokiem do zasobu internetowego. |
PreAuthenticate |
Pobiera lub ustawia wartość wskazującą, czy wysłać nagłówek autoryzacji z żądaniem. |
PreAuthenticate |
W przypadku zastąpienia 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 do lub odczytywania ze strumienia. |
Referer |
Pobiera lub ustawia wartość nagłówka |
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ę elementu CookieContainer. |
Timeout |
Pobiera lub ustawia wartość limitu czasu w milisekundach dla GetResponse() metod i GetRequestStream() . |
Timeout |
Pobiera lub ustawia czas (w milisekundach) przed przekroczeniem limitu czasu żądania. (Odziedziczone po WebRequest) |
TransferEncoding |
Pobiera lub ustawia wartość nagłówka |
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 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 |
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 asynchroniczne żądanie dla Stream obiektu do użycia do zapisywania danych. |
BeginGetResponse(AsyncCallback, Object) |
Rozpoczyna żądanie asynchroniczne dla 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() |
Nieaktualne.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Nieaktualne.
Nieaktualne.
Nieaktualne.
Wypełnia element SerializationInfo danymi wymaganymi do serializacji obiektu docelowego. |
GetObjectData(SerializationInfo, StreamingContext) |
Nieaktualne.
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() |
Nieaktualne.
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) |
Nieaktualne.
Nieaktualne.
Nieaktualne.
Wypełnia element SerializationInfo danymi potrzebnymi do serializacji obiektu docelowego. |