HttpWebRequest Třída

Definice

Poskytuje implementaci WebRequest třídy specifické 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
HttpWebRequest
Dědičnost
Atributy
Implementuje

Příklady

Následující příklad kódu vytvoří pro HttpWebRequest 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

Důležité

Nedoporučujeme používat HttpWebRequest pro nový vývoj. Místo toho použijte System.Net.Http.HttpClient třídu .

Třída HttpWebRequest poskytuje podporu pro vlastnosti a metody definované v WebRequest a pro další vlastnosti a metody, které umožňují uživateli komunikovat přímo se servery pomocí protokolu HTTP.

Nepoužívejte HttpWebRequest konstruktor. K inicializaci nových HttpWebRequest objektů použijte metodu WebRequest.Create . Pokud je http:// schéma identifikátoru URI (Uniform Resource Identifier) nebo https://, Create vrátí HttpWebRequest objekt .

Metoda GetResponse provede synchronní požadavek na prostředek zadaný ve RequestUri vlastnosti a vrátí objekt HttpWebResponse , který obsahuje objekt odpovědi. Data odpovědi lze přijímat pomocí streamu vráceného metodou GetResponseStream. Pokud se objekt odpovědi nebo datový proud odpovědi zavře, zbývající data 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 platí následující podmínky: jedná se o požadavek na udržování připojení nebo požadavek v kanálu, je potřeba přijímat pouze malé množství dat nebo se zbývající data přijímají v malém časovém intervalu. Pokud žádná z uvedených podmínek neplatí nebo dojde k překročení doby vyprazdňování, zásuvka se zavře. U připojení k udržování připojení nebo připojení v kanálu důrazně doporučujeme, aby aplikace načítala datové proudy až do EOF. Tím se zajistí, že se soket znovu použije pro následné požadavky, což povede k lepšímu výkonu a menšímu využití prostředků.

Pokud chcete odeslat data do prostředku, vrátí metoda objekt, GetRequestStream který Stream se použije k odeslání dat. Metody BeginGetRequestStream a EndGetRequestStream poskytují asynchronní přístup k datovému streamu odesílání.

Pro ověřování klientů pomocí HttpWebRequestnástroje musí být klientský certifikát nainstalovaný v úložišti certifikátů aktuálního uživatele.

Třída HttpWebRequest vyvolá výjimku , WebException když při přístupu k prostředku dojde k chybám. Vlastnost WebException.Status obsahuje WebExceptionStatus hodnotu, která označuje zdroj chyby. Pokud WebException.Status je WebExceptionStatus.ProtocolErrorhodnota , Response vlastnost obsahuje HttpWebResponse hodnotu přijatou z prostředku.

HttpWebRequest zveřejňuje společné hodnoty hlaviček HTTP odesílaných do internetového prostředku jako vlastnosti, nastavené metodami nebo nastavené systémem; Následující tabulka obsahuje úplný seznam. Další hlavičky ve Headers vlastnosti můžete nastavit jako páry název/hodnota. Všimněte si, že servery a mezipaměti můžou během požadavku měnit nebo přidávat hlavičky.

V následující tabulce jsou uvedeny hlavičky HTTP, které jsou nastaveny buď vlastnostmi nebo metodami, nebo systémem.

Hlavička Nastavit podle
Accept Nastaví se Accept vlastností .
Connection Nastavte vlastnost Connection , KeepAlive vlastnost.
Content-Length Nastaví se ContentLength vlastností .
Content-Type Nastaví se ContentType vlastností .
Expect Nastaví se Expect vlastností .
Date Systém nastaví na aktuální datum.
Host Nastavte systémem aktuální informace o hostiteli.
If-Modified-Since Nastaví se IfModifiedSince vlastností .
Range Nastaveno metodou AddRange .
Referer Nastaví se Referer vlastností .
Transfer-Encoding Nastavte TransferEncoding vlastnost ( SendChunked vlastnost musí být true).
User-Agent Nastaví se UserAgent vlastností .

Poznámka

HttpWebRequest se zaregistruje automaticky. Před použitím identifikátorů URI začínajících na nebo https://není nutné volat metodu RegisterPrefix pro registraciSystem.Net.HttpWebRequest.http://

Konfigurační soubor místního počítače nebo aplikace může určovat použití výchozího proxy serveru. Proxy Pokud je vlastnost zadaná, nastavení proxy serveru z Proxy vlastnosti přepíší místní počítač nebo konfigurační soubor aplikace a HttpWebRequest instance použije zadaná nastavení proxy serveru. Pokud není v konfiguračním souboru zadán žádný proxy server a Proxy vlastnost není určena, HttpWebRequest třída použije nastavení proxy serveru zděděné z aplikace Internet Explorer v místním počítači. Pokud v Internet Exploreru není žádné nastavení proxy serveru, požadavek se odešle přímo na server.

Třída HttpWebRequest parsuje seznam obejití proxy serveru se zástupnými znaky zděděnými z aplikace Internet Explorer jinak než seznam nepoužívat je analyzován přímo aplikací Internet Explorer. HttpWebRequest Například třída bude analyzovat seznam vynechání "nt*" z aplikace Internet Explorer jako regulární výraz "nt.$". To se liší od nativního chování aplikace Internet Explorer. Adresa URLhttp://intxxxxx by tedy obešla proxy server pomocí HttpWebRequest třídy , ale neobešla by proxy server pomocí Internet Exploreru.

Poznámka

Architektura ukládá vytvořené relace SSL do mezipaměti 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 opakované použití relace SSL rozhraní použije 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 je pomocí CookieContainer vlastnosti .

Rozhraní .NET Framework 4.6 obsahuje novou funkci zabezpečení, která blokuje nezabezpečené algoritmy šifer a hash pro připojení. Aplikace používající protokol TLS/SSL prostřednictvím rozhraní API, jako jsou HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream atd., a zacílené na rozhraní .NET Framework 4.6 získají ve výchozím nastavení bezpečnější chování.

Vývojáři se můžou chtít z tohoto chování odhlásit, aby si zachovali interoperabilitu se svými stávajícími službami SSL3 NEBO se službami TLS s RC4. Tento článek vysvětluje, jak upravit kód tak, aby nové chování bylo zakázáno.

Konstruktory

HttpWebRequest()
Zastaralé.
Zastaralé.

Inicializuje novou instanci HttpWebRequest třídy. Tento konstruktor je zastaralý.

HttpWebRequest(SerializationInfo, StreamingContext)
Zastaralé.
Zastaralé.
Zastaralé.
Zastaralé.

Inicializuje novou instanci HttpWebRequest třídy ze zadaných SerializationInfo instancí tříd a StreamingContext . Tento konstruktor je zastaralý.

Vlastnosti

Accept

Získá nebo nastaví hodnotu hlavičky Accept HTTP.

Address

Získá identifikátor URI (Uniform Resource Identifier) prostředku internetu, který skutečně odpovídá na požadavek.

AllowAutoRedirect

Získá nebo nastaví hodnotu, která označuje, zda má požadavek sledovat odpovědi 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á označuje, zda chcete ukládat data odesílaná do internetového prostředku do vyrovnávací paměti.

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ženy k tomuto požadavku.

Connection

Získá nebo nastaví hodnotu hlavičky Connection HTTP.

ConnectionGroupName

Získá nebo nastaví název skupiny připojení pro požadavek.

ConnectionGroupName

Při přepsání v následné třídě získá nebo nastaví název skupiny připojení pro požadavek.

(Zděděno od WebRequest)
ContentLength

Získá nebo nastaví hlavičku Content-length HTTP.

ContentLength

Při přepsání v následné 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 hlavičky Content-type HTTP.

ContinueDelegate

Získá nebo nastaví metodu delegáta 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, aby počkal na přijetí 100-Continue ze serveru.

CookieContainer

Získá nebo nastaví soubory cookie přidružené k požadavku.

CreatorInstance
Zastaralé.

Při přepsání v následné třídě získá objekt factory odvozený z IWebRequestCreate třídy použité k vytvoření WebRequest instance pro provedení 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í hodnotu hlavičky Date HTTP pro použití v požadavku HTTP.

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 odpovědi na chybu HTTP.

DefaultMaximumResponseHeadersLength

Získá nebo nastaví výchozí pro MaximumResponseHeadersLength vlastnost.

Expect

Získá nebo nastaví hodnotu hlavičky Expect HTTP.

HaveResponse

Získá hodnotu, která označuje, zda byla přijata odpověď z internetového prostředku.

Headers

Určuje kolekci dvojic název/hodnota, 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 hlavičky If-Modified-Since HTTP.

ImpersonationLevel

Získá nebo nastaví úroveň zosobnění aktuálního požadavku.

(Zděděno od WebRequest)
KeepAlive

Získá nebo nastaví hodnotu, která označuje, zda 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 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á označuje, zda kanálovat požadavek na prostředek internetu.

PreAuthenticate

Získá nebo nastaví hodnotu, která označuje, zda odeslat autorizační hlavičku s požadavkem.

PreAuthenticate

Při přepsání v následné třídě označuje, zda se má žádost předem ověřit.

(Zděděno od WebRequest)
ProtocolVersion

Získá nebo nastaví verzi HTTP, která se má použít pro požadavek.

Proxy

Získá nebo nastaví informace proxy pro požadavek.

Proxy

Při přepsání v následné třídě 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 datového proudu nebo čtení z datového proudu.

Referer

Získá nebo nastaví hodnotu hlavičky Referer HTTP.

RequestUri

Získá původní identifikátor URI (Uniform Resource Identifier) požadavku.

SendChunked

Získá nebo nastaví hodnotu, která označ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í pro 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() metody a GetRequestStream() .

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 hlavičky Transfer-encoding HTTP.

UnsafeAuthenticatedConnectionSharing

Získá nebo nastaví hodnotu, která označuje, zda povolit vysokorychlostní sdílení připojení ověřené protokolem NTLM.

UseDefaultCredentials

Získá nebo nastaví Boolean hodnotu, která řídí, zda se s požadavky odesílají výchozí přihlašovací údaje.

UseDefaultCredentials

Při přepsání v potomkovací třídě získá nebo nastaví Boolean hodnotu, která určuje, zda DefaultCredentials se odesílají s požadavky.

(Zděděno od WebRequest)
UserAgent

Získá nebo nastaví hodnotu hlavičky User-agent HTTP.

Metody

Abort()

Zruší požadavek na internetový prostředek.

AddRange(Int32)

Přidá do požadavku na konkrétní rozsah hlavičku rozsahu bajtů od začátku nebo konce požadovaných dat.

AddRange(Int32, Int32)

Přidá do požadavku na zadaný rozsah hlavičku rozsahu bajtů.

AddRange(Int64)

Přidá do požadavku na konkrétní rozsah hlavičku rozsahu bajtů od začátku nebo konce požadovaných dat.

AddRange(Int64, Int64)

Přidá do požadavku na zadaný rozsah hlavičku rozsahu bajtů.

AddRange(String, Int32)

Přidá do požadavku na konkrétní rozsah hlavičku Rozsah od začátku nebo konce požadovaných dat.

AddRange(String, Int32, Int32)

Přidá do požadavku na zadaný rozsah hlavičku rozsahu.

AddRange(String, Int64)

Přidá do požadavku na konkrétní rozsah hlavičku Rozsah od začátku nebo konce požadovaných dat.

AddRange(String, Int64, Int64)

Přidá do požadavku na zadaný rozsah hlavičku rozsahu.

BeginGetRequestStream(AsyncCallback, Object)

Zahájí asynchronní požadavek na objekt, který Stream se má použít 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 používaného ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

Ukončí asynchronní požadavek na objekt, který Stream se má použít k zápisu dat.

EndGetRequestStream(IAsyncResult, TransportContext)

Ukončí asynchronní požadavek na objekt, který Stream se má použít k zápisu dat, a výstupy TransportContext přidružené k datovému proudu.

EndGetResponse(IAsyncResult)

Ukončí asynchronní požadavek na internetový prostředek.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Vrátí hodnotu hash instance WebRequest .

GetHashCode()

Slouží jako výchozí hashovací funkce.

(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 objekt daty potřebnými k serializaci cílového objektu.

GetObjectData(SerializationInfo, StreamingContext)
Zastaralé.

Naplní SerializationInfo objekt daty potřebnými k serializaci cílového objektu.

(Zděděno od WebRequest)
GetRequestStream()

Získá objekt, který Stream se má použít k zápisu dat požadavku.

GetRequestStream()

Při přepsání v potomkované třídě vrátí hodnotu Stream pro zápis dat do internetového prostředku.

(Zděděno od WebRequest)
GetRequestStream(TransportContext)

Získá objekt, který Stream se má použít k zápisu dat požadavku a výstupu TransportContext přidruženého k datovému proudu.

GetRequestStreamAsync()

Při přepsání v odvozené třídě vrátí hodnotu Stream pro zápis dat do internetového prostředku jako asynchronní operaci.

(Zděděno od WebRequest)
GetResponse()

Vrátí odpověď z internetového prostředku.

GetResponse()

Při přepsání v odvozené třídě vrátí odpověď na požadavek internetu.

(Zděděno od WebRequest)
GetResponseAsync()

Při přepsání v odvozené třídě vrátí odpověď na internetový požadavek jako asynchronní operaci.

(Zděděno od WebRequest)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.

(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 objekt 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.

Platí pro

Viz také