HttpWebRequest.Timeout Vlastnost
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í.
Získá nebo nastaví hodnotu časového limitu v milisekundách pro GetResponse() a GetRequestStream() metody.
public:
virtual property int Timeout { int get(); void set(int value); };
public override int Timeout { get; set; }
member this.Timeout : int with get, set
Public Overrides Property Timeout As Integer
Hodnota vlastnosti
Počet milisekund, které se mají počkat, než vyprší časový limit požadavku. Výchozí hodnota je 100 000 milisekund (100 sekund).
Výjimky
Zadaná hodnota je menší než nula a není Infinite.
Příklady
Následující příklad kódu nastaví Timeout vlastnost HttpWebRequest objektu.
// Create a new 'HttpWebRequest' Object to the mentioned URL.
HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) );
Console::WriteLine( "\nThe timeout time of the request before setting the property is {0} milliseconds.", myHttpWebRequest->Timeout );
// Set the 'Timeout' property of the HttpWebRequest to 10 milliseconds.
myHttpWebRequest->Timeout = 10;
// Display the 'Timeout' property of the 'HttpWebRequest' on the console.
Console::WriteLine( "\nThe timeout time of the request after setting the timeout is {0} milliseconds.", myHttpWebRequest->Timeout );
// A HttpWebResponse object is created and is GetResponse Property of the HttpWebRequest associated with it
HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() );
// Create a new 'HttpWebRequest' Object to the mentioned URL.
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
Console.WriteLine("\nThe timeout time of the request before setting the property is {0} milliSeconds.",myHttpWebRequest.Timeout);
// Set the 'Timeout' property of the HttpWebRequest to 10 milliseconds.
myHttpWebRequest.Timeout=10;
// Display the 'Timeout' property of the 'HttpWebRequest' on the console.
Console.WriteLine("\nThe timeout time of the request after setting the timeout is {0} milliSeconds.",myHttpWebRequest.Timeout);
// A HttpWebResponse object is created and is GetResponse Property of the HttpWebRequest associated with it
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
' Create a new 'HttpWebRequest' Object to the mentioned URL.
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com"), HttpWebRequest)
Console.WriteLine(ControlChars.Cr + "The timeout time of the request before setting the property is {0} milliSeconds", myHttpWebRequest.Timeout)
' Set the 'Timeout' property of the HttpWebRequest to 10 milliseconds.
myHttpWebRequest.Timeout = 10
' Display the 'Timeout' property of the 'HttpWebRequest' on the console.
Console.WriteLine(ControlChars.Cr + "The timeout time of the request after setting the timeout is {0} milliSeconds", myHttpWebRequest.Timeout)
' A HttpWebResponse object is created and is GetResponse Property of the HttpWebRequest associated with it
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
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.
Timeout je počet milisekund, které následný synchronní požadavek provedený pomocí metody GetResponse čeká na odpověď a metoda GetRequestStream čeká na datový proud. Timeout se vztahuje na celý požadavek a odpověď, ne jednotlivě na volání GetRequestStream a metody GetResponse. Pokud prostředek není vrácen během časového limitu, požadavek vyvolá WebException s vlastností Status nastavenou na WebExceptionStatus.Timeout.
Vlastnost Timeout musí být nastavena před zavolání metody GetRequestStream nebo GetResponse. Změna vlastnosti Timeout po volání metody GetRequestStream nebo GetResponse nemá žádný vliv
Vlastnost Timeout nemá žádný vliv na asynchronní požadavky provedené pomocí BeginGetResponse nebo BeginGetRequestStream metody.
Opatrnost
V případě asynchronních požadavků implementuje klientská aplikace vlastní mechanismus vypršení časového limitu. Podívejte se na příklad v metodě BeginGetResponse.
Chcete-li zadat dobu čekání před vypršením časového limitu operace čtení nebo zápisu, použijte vlastnost ReadWriteTimeout.
Vrácení nebo vypršení časového limitu dotazu DNS (Domain Name System) může trvat až 15 sekund. Pokud váš požadavek obsahuje název hostitele, který vyžaduje překlad, a vy nastavíte Timeout na hodnotu kratší než 15 sekund, může trvat 15 sekund nebo déle, než se vyvolá WebException k označení časového limitu požadavku.