HttpWebRequest.Timeout Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość limitu czasu w milisekundach dla metod GetResponse() i GetRequestStream().
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
Wartość właściwości
Liczba milisekund oczekiwania przed upływem limitu czasu żądania. Wartość domyślna to 100 000 milisekund (100 sekund).
Wyjątki
Określona wartość jest mniejsza niż zero i nie jest Infinite.
Przykłady
Poniższy przykład kodu ustawia właściwość Timeout obiektu HttpWebRequest.
// 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)
Uwagi
Ostrożność
WebRequest
, HttpWebRequest
, ServicePoint
i WebClient
są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.
Timeout to liczba milisekund, które kolejne synchroniczne żądanie wykonane za pomocą metody GetResponse czeka na odpowiedź, a metoda GetRequestStream czeka na strumień. Timeout dotyczy całego żądania i odpowiedzi, a nie indywidualnie do wywołań metody GetRequestStream i GetResponse. Jeśli zasób nie jest zwracany w okresie przekroczenia limitu czasu, żądanie zgłasza WebException z właściwością Status ustawioną na wartość WebExceptionStatus.Timeout.
Właściwość Timeout musi zostać ustawiona przed wywołaniem metody GetRequestStream lub GetResponse. Zmiana właściwości Timeout po wywołaniu metody GetRequestStream lub GetResponse nie ma wpływu
Właściwość Timeout nie ma wpływu na żądania asynchroniczne wykonywane przy użyciu metody BeginGetResponse lub BeginGetRequestStream.
Ostrożność
W przypadku żądań asynchronicznych aplikacja kliencka implementuje własny mechanizm przekroczenia limitu czasu. Zapoznaj się z przykładem w metodzie BeginGetResponse.
Aby określić czas oczekiwania przed przekroczeniem limitu czasu operacji odczytu lub zapisu, użyj właściwości ReadWriteTimeout.
Zapytanie systemu nazw domen (DNS) może potrwać do 15 sekund, aby zwrócić lub upłynął limit czasu. Jeśli żądanie zawiera nazwę hosta, która wymaga rozwiązania i ustawiono Timeout na wartość mniejszą niż 15 sekund, może upłynąć 15 sekund lub więcej, zanim zostanie zgłoszony WebException, aby wskazać limit czasu żądania.