Udostępnij za pośrednictwem


HttpWebRequest Klasa

Definicja

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
HttpWebRequest
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, ServicePointi 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 Accept.

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

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łówka HTTP.

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

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 Date 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ą dla właściwości MaximumResponseHeadersLength.

Expect

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

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 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 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 Referer.

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 Transfer-encoding.

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 User-agent.

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.

Dotyczy

Zobacz też