Udostępnij za pośrednictwem


HttpWebRequest.Timeout Właściwość

Definicja

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

Dotyczy

Zobacz też