HttpWebRequest Klasa

Definicja

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
HttpWebRequest
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ć truewartość ).
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 Accept HTTP.

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 Connection HTTP.

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 Content-length nagłówek HTTP.

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 Content-type HTTP.

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 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 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 If-Modified-Since .

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 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 przekroczeniem limitu czasu żądania.

(Odziedziczone po WebRequest)
TransferEncoding

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

UnsafeAuthenticatedConnectionSharing

Pobiera lub ustawia wartość wskazującą, czy zezwolić na szybkie udostępnianie połączeń uwierzytelnionych przez protokół NTLM.

UseDefaultCredentials

Pobiera lub ustawia wartość, która określa Boolean , 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 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 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 obiektu Stream do pisania danych i danych wyjściowych TransportContext skojarzonych ze strumieniem.

EndGetResponse(IAsyncResult)

Kończy żądanie asynchroniczne dla 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)

Stream Pobiera obiekt używany do zapisywania danych żądań i danych wyjściowych TransportContext skojarzonych 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 wymaganymi do serializacji obiektu docelowego.

Dotyczy

Zobacz też