HttpWebRequest Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje implementaci třídy WebRequest specifickou pro protokol 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
- Dědičnost
- Dědičnost
- Atributy
- Implementuje
Příklady
Následující příklad kódu vytvoří HttpWebRequest pro identifikátor 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/")
Poznámky
Opatrnost
WebRequest
, HttpWebRequest
, ServicePoint
a WebClient
jsou zastaralé a neměli byste je používat pro nový vývoj. Místo toho použijte HttpClient.
Třída HttpWebRequest poskytuje podporu vlastností a metod definovaných v WebRequest a pro další vlastnosti a metody, které uživateli umožňují pracovat přímo se servery pomocí protokolu HTTP.
Nepoužívejte konstruktor HttpWebRequest. K inicializaci nových objektů HttpWebRequest použijte metodu WebRequest.Create. Pokud je schéma identifikátoru URI (Uniform Resource Identifier) http://
nebo https://
, Create vrátí objekt HttpWebRequest.
Metoda GetResponse vytvoří synchronní požadavek na prostředek zadaný ve vlastnosti RequestUri a vrátí HttpWebResponse, který obsahuje objekt odpovědi. Data odpovědi lze přijímat pomocí datového proudu vráceného GetResponseStream. Pokud je objekt odpovědi nebo stream odpovědi zavřený, zbývající data se propadnou. Zbývající data se vyprázdní a soket se znovu použije pro následné požadavky při zavření objektu odpovědi nebo datového proudu, pokud jsou splněny následující podmínky: jedná se o požadavek na zachování nebo kanál, je potřeba přijímat pouze malé množství dat nebo zbývající data se přijímají v malém časovém intervalu. Pokud se nezmíní žádné z uvedených podmínek nebo dojde k překročení doby vyprázdnění, soket se zavře. V případě připojení s udržováním nebo kanálem důrazně doporučujeme, aby aplikace přečetla datové proudy, dokud EOF nečte. Tím se zajistí opětovné použití soketu pro následné požadavky, což vede k lepšímu výkonu a menšímu využití prostředků.
Pokud chcete odeslat data do prostředku, vrátí metoda GetRequestStream objekt Stream, který se má použít k odesílání dat. Metody BeginGetRequestStream a EndGetRequestStream poskytují asynchronní přístup k datovému proudu pro odesílání.
Pro ověřování klientů pomocí HttpWebRequestmusí být klientský certifikát nainstalován v úložišti certifikátů aktuálního uživatele.
Třída HttpWebRequest vyvolá WebException, když dojde k chybám při přístupu k prostředku. Vlastnost WebException.Status obsahuje hodnotu WebExceptionStatus, která označuje zdroj chyby. Pokud je WebException.StatusWebExceptionStatus.ProtocolError, vlastnost Response obsahuje HttpWebResponse přijaté z prostředku.
HttpWebRequest zveřejňuje běžné hodnoty hlaviček HTTP odesílané do internetového prostředku jako vlastnosti, nastavené metodami nebo nastavené systémem; Následující tabulka obsahuje úplný seznam. V Headers vlastnosti můžete nastavit další hlavičky jako páry název/hodnota. Všimněte si, že servery a mezipaměti se můžou během požadavku měnit nebo přidávat hlavičky.
Následující tabulka uvádí hlavičky HTTP, které jsou nastaveny buď podle vlastností, nebo metod nebo systému.
Záhlaví | Nastavit podle |
---|---|
Accept |
Nastavte vlastnost Accept. |
Connection |
Nastavte vlastnost ConnectionKeepAlive vlastnost. |
Content-Length |
Nastavte vlastnost ContentLength. |
Content-Type |
Nastavte vlastnost ContentType. |
Expect |
Nastavte vlastnost Expect. |
Date |
Nastavte podle systému aktuální datum. |
Host |
Nastavte systém na aktuální informace o hostiteli. |
If-Modified-Since |
Nastavte vlastnost IfModifiedSince. |
Range |
Nastavte metodou AddRange. |
Referer |
Nastavte vlastnost Referer. |
Transfer-Encoding |
Vlastnost TransferEncoding (vlastnost SendChunked musí být true ). |
User-Agent |
Nastavte vlastnost UserAgent. |
Poznámka
HttpWebRequest se zaregistruje automaticky. Před použitím identifikátorů URI začínajících http://
nebo https://
nemusíte volat System.Net.HttpWebRequest metodu RegisterPrefix.
Konfigurační soubor místního počítače nebo aplikace může určovat, že se použije výchozí proxy server. Pokud je zadána vlastnost Proxy, nastavení proxy serveru z vlastnosti Proxy přepíše konfigurační soubor místního počítače nebo aplikace a instance HttpWebRequest použije zadaná nastavení proxy. Pokud není v konfiguračním souboru zadán žádný proxy server a není zadána vlastnost Proxy, třída HttpWebRequest používá nastavení proxy zděděné z možností internetu v místním počítači. Pokud v možnostech internetu nejsou k dispozici žádná nastavení proxy serveru, požadavek se odešle přímo na server.
Poznámka
Rozhraní ukládá relace SSL do mezipaměti při jejich vytváření a pokud je to možné, pokusí se znovu použít relaci uloženou v mezipaměti pro nový požadavek. Při pokusu o opětovné použití relace PROTOKOLU SSL používá framework první prvek ClientCertificates (pokud existuje) nebo se pokusí znovu použít anonymní relace, pokud ClientCertificates je prázdný.
Poznámka
Z bezpečnostních důvodů jsou soubory cookie ve výchozím nastavení zakázané. Pokud chcete používat soubory cookie, povolte soubory cookie pomocí vlastnosti CookieContainer.
Rozhraní .NET Framework 4.6 obsahuje novou funkci zabezpečení, která blokuje nezabezpečené šifrovací a hashovací algoritmy pro připojení. Aplikace využívající protokol TLS/SSL prostřednictvím rozhraní API, jako jsou HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream atd. a cílení na rozhraní .NET Framework 4.6, ve výchozím nastavení získají bezpečnější chování.
Vývojáři můžou chtít toto chování vyloučit, aby zachovali interoperabilitu se stávajícími službami SSL3 nebo službami TLS w/ RC4. tento článek vysvětluje, jak upravit kód tak, aby bylo nové chování zakázané.
Konstruktory
HttpWebRequest() |
Zastaralé.
Zastaralé.
Inicializuje novou instanci HttpWebRequest třídy. Tento konstruktor je zastaralý. |
HttpWebRequest(SerializationInfo, StreamingContext) |
Zastaralé.
Zastaralé.
Zastaralé.
Zastaralé.
Inicializuje novou instanci třídy HttpWebRequest ze zadaných instancí SerializationInfo a StreamingContext třídy. Tento konstruktor je zastaralý. |
Vlastnosti
Accept |
Získá nebo nastaví hodnotu |
Address |
Získá identifikátor URI (Uniform Resource Identifier) internetového prostředku, který ve skutečnosti reaguje na požadavek. |
AllowAutoRedirect |
Získá nebo nastaví hodnotu, která určuje, jestli má požadavek postupovat podle odpovědí přesměrování. |
AllowReadStreamBuffering |
Získá nebo nastaví hodnotu, která určuje, zda se má ukládat do vyrovnávací paměti přijaté z internetového prostředku. |
AllowWriteStreamBuffering |
Získá nebo nastaví hodnotu, která určuje, zda se mají ukládat data odesílaná do internetového prostředku. |
AuthenticationLevel |
Získá nebo nastaví hodnoty označující úroveň ověřování a zosobnění použité pro tento požadavek. (Zděděno od WebRequest) |
AutomaticDecompression |
Získá nebo nastaví typ dekomprese, který se používá. |
CachePolicy |
Získá nebo nastaví zásady mezipaměti pro tento požadavek. (Zděděno od WebRequest) |
ClientCertificates |
Získá nebo nastaví kolekci certifikátů zabezpečení, které jsou přidružené k tomuto požadavku. |
Connection |
Získá nebo nastaví hodnotu |
ConnectionGroupName |
Získá nebo nastaví název skupiny připojení pro požadavek. |
ConnectionGroupName |
Při přepsání v potomk třídy získá nebo nastaví název skupiny připojení pro požadavek. (Zděděno od WebRequest) |
ContentLength |
Získá nebo nastaví |
ContentLength |
Při přepsání v potomk třídě získá nebo nastaví délku obsahu odesílaných dat požadavku. (Zděděno od WebRequest) |
ContentType |
Získá nebo nastaví hodnotu |
ContinueDelegate |
Získá nebo nastaví delegovací metodu volanou při přijetí odpovědi HTTP 100-continue z internetového prostředku. |
ContinueTimeout |
Získá nebo nastaví časový limit v milisekundách čekání na 100-Continue ze serveru. |
CookieContainer |
Získá nebo nastaví soubory cookie přidružené k žádosti. |
CreatorInstance |
Zastaralé.
Při přepsání v potomk třídy získá objekt továrny odvozený z IWebRequestCreate třídy použitý k vytvoření WebRequest vytvoření instance pro vytvoření požadavku na zadaný identifikátor URI. (Zděděno od WebRequest) |
Credentials |
Získá nebo nastaví ověřovací informace pro požadavek. |
Date |
Získá nebo nastaví |
DefaultCachePolicy |
Získá nebo nastaví výchozí zásady mezipaměti pro tento požadavek. |
DefaultMaximumErrorResponseLength |
Získá nebo nastaví výchozí maximální délku chybové odpovědi HTTP. |
DefaultMaximumResponseHeadersLength |
Získá nebo nastaví výchozí pro MaximumResponseHeadersLength vlastnost. |
Expect |
Získá nebo nastaví hodnotu |
HaveResponse |
Získá hodnotu, která označuje, zda byla odpověď přijata z internetového prostředku. |
Headers |
Určuje kolekci dvojic name/value, které tvoří hlavičky HTTP. |
Host |
Získá nebo nastaví hodnotu hlavičky hostitele použít v požadavku HTTP nezávisle na identifikátoru URI požadavku. |
IfModifiedSince |
Získá nebo nastaví hodnotu |
ImpersonationLevel |
Získá nebo nastaví úroveň zosobnění pro aktuální požadavek. (Zděděno od WebRequest) |
KeepAlive |
Získá nebo nastaví hodnotu, která určuje, zda se má vytvořit trvalé připojení k internetovému prostředku. |
MaximumAutomaticRedirections |
Získá nebo nastaví maximální počet přesměrování, které požadavek následuje. |
MaximumResponseHeadersLength |
Získá nebo nastaví maximální povolenou délku hlaviček odpovědi. |
MediaType |
Získá nebo nastaví typ média požadavku. |
Method |
Získá nebo nastaví metodu pro požadavek. |
Pipelined |
Získá nebo nastaví hodnotu, která určuje, zda se má požadavek kanálovat do internetového prostředku. |
PreAuthenticate |
Získá nebo nastaví hodnotu, která určuje, zda se má odeslat autorizační hlavička s požadavkem. |
PreAuthenticate |
Při přepsání v potomkové třídě označuje, zda se má požadavek předem ověřit. (Zděděno od WebRequest) |
ProtocolVersion |
Získá nebo nastaví verzi PROTOKOLU HTTP, která se má použít pro požadavek. |
Proxy |
Získá nebo nastaví informace o proxy serveru pro požadavek. |
Proxy |
Při přepsání v potomk třídy získá nebo nastaví síťový proxy server pro přístup k tomuto internetovému prostředku. (Zděděno od WebRequest) |
ReadWriteTimeout |
Získá nebo nastaví časový limit v milisekundách při zápisu do nebo čtení z datového proudu. |
Referer |
Získá nebo nastaví hodnotu |
RequestUri |
Získá původní identifikátor URI (Uniform Resource Identifier) požadavku. |
SendChunked |
Získá nebo nastaví hodnotu, která určuje, zda se mají odesílat data v segmentech do internetového prostředku. |
ServerCertificateValidationCallback |
Získá nebo nastaví funkci zpětného volání k ověření certifikátu serveru. |
ServicePoint |
Získá bod služby, který se má použít pro požadavek. |
SupportsCookieContainer |
Získá hodnotu, která označuje, zda požadavek poskytuje podporu pro CookieContainer. |
Timeout |
Získá nebo nastaví hodnotu časového limitu v milisekundách pro GetResponse() a GetRequestStream() metody. |
Timeout |
Získá nebo nastaví dobu v milisekundách před vypršením časového limitu požadavku. (Zděděno od WebRequest) |
TransferEncoding |
Získá nebo nastaví hodnotu |
UnsafeAuthenticatedConnectionSharing |
Získá nebo nastaví hodnotu, která určuje, zda povolit vysokorychlostní sdílení připojení ověřené protokolem NTLM. |
UseDefaultCredentials |
Získá nebo nastaví Boolean hodnotu, která určuje, jestli se s požadavky posílají výchozí přihlašovací údaje. |
UseDefaultCredentials |
Při přepsání v potomkovací třídě získá nebo nastaví hodnotu Boolean, která určuje, zda DefaultCredentials se odesílají s požadavky. (Zděděno od WebRequest) |
UserAgent |
Získá nebo nastaví hodnotu |
Metody
Abort() |
Zruší požadavek na internetový prostředek. |
AddRange(Int32) |
Přidá hlavičku bajtového rozsahu do požadavku na konkrétní rozsah od začátku nebo konce požadovaných dat. |
AddRange(Int32, Int32) |
Přidá hlavičku bajtového rozsahu do požadavku na zadanou oblast. |
AddRange(Int64) |
Přidá hlavičku bajtového rozsahu do požadavku na konkrétní rozsah od začátku nebo konce požadovaných dat. |
AddRange(Int64, Int64) |
Přidá hlavičku bajtového rozsahu do požadavku na zadanou oblast. |
AddRange(String, Int32) |
Přidá do požadavku hlavičku Rozsah od začátku nebo konce požadovaných dat. |
AddRange(String, Int32, Int32) |
Přidá hlavičku rozsahu do požadavku na zadaný rozsah. |
AddRange(String, Int64) |
Přidá do požadavku hlavičku Rozsah od začátku nebo konce požadovaných dat. |
AddRange(String, Int64, Int64) |
Přidá hlavičku rozsahu do požadavku na zadaný rozsah. |
BeginGetRequestStream(AsyncCallback, Object) |
Zahájí asynchronní požadavek na objekt Stream, který se použije k zápisu dat. |
BeginGetResponse(AsyncCallback, Object) |
Zahájí asynchronní požadavek na internetový prostředek. |
CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
EndGetRequestStream(IAsyncResult) |
Ukončí asynchronní požadavek na objekt Stream, který se použije k zápisu dat. |
EndGetRequestStream(IAsyncResult, TransportContext) |
Ukončí asynchronní požadavek na objekt Stream, který se použije k zápisu dat a výstupu TransportContext přidružené ke streamu. |
EndGetResponse(IAsyncResult) |
Ukončí asynchronní požadavek na internetový prostředek. |
Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Vrátí hodnotu hash pro instanci WebRequest. |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetLifetimeService() |
Zastaralé.
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Zastaralé.
Zastaralé.
Zastaralé.
Naplní SerializationInfo daty potřebnými k serializaci cílového objektu. |
GetObjectData(SerializationInfo, StreamingContext) |
Zastaralé.
Naplní SerializationInfo daty potřebnými k serializaci cílového objektu. (Zděděno od WebRequest) |
GetRequestStream() |
Získá Stream objekt, který se použije k zápisu dat požadavku. |
GetRequestStream() |
Při přepsání v potomk třídy vrátí Stream pro zápis dat do internetového prostředku. (Zděděno od WebRequest) |
GetRequestStream(TransportContext) |
Získá Stream objekt, který se použije k zápisu dat požadavku a výstupy TransportContext přidružené ke streamu. |
GetRequestStreamAsync() |
Při přepsání v potomk třídy vrátí Stream pro zápis dat do internetového prostředku jako asynchronní operace. (Zděděno od WebRequest) |
GetResponse() |
Vrátí odpověď z internetového prostředku. |
GetResponse() |
Při přepsání v potomk třídy vrátí odpověď na internetový požadavek. (Zděděno od WebRequest) |
GetResponseAsync() |
Při přepsání v potomk třídy vrátí odpověď na internetový požadavek jako asynchronní operace. (Zděděno od WebRequest) |
GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního objektu MarshalByRefObject. (Zděděno od MarshalByRefObject) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Zastaralé.
Zastaralé.
Zastaralé.
Naplní SerializationInfo daty potřebnými k serializaci cílového objektu. |
Metody rozšíření
GetRequestMetadata(HttpWebRequest) |
Získá metadata pro odchozí požadavky, které se mají použít pro účely telemetrie. |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
Nastaví metadata pro odchozí požadavky, které se mají použít pro účely telemetrie. |