Поделиться через


HttpWebRequest.Timeout Свойство

Определение

Возвращает или задает значение времени ожидания в миллисекундах для методов GetResponse() и 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

Значение свойства

Число миллисекундах, ожидаемых до истечения времени ожидания запроса. Значение по умолчанию — 100 000 миллисекунд (100 секунд).

Исключения

Указанное значение меньше нуля и не Infinite.

Примеры

В следующем примере кода задается свойство Timeout объекта 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)

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Timeout — это количество миллисекунд, которое последующий синхронный запрос, сделанный с помощью метода GetResponse, ожидает ответа, а метод GetRequestStream ожидает потока. Timeout применяется ко всему запросу и ответу, а не к вызовам метода GetRequestStream и GetResponse. Если ресурс не возвращается в течение периода ожидания, запрос создает WebException со свойством Status, равным WebExceptionStatus.Timeout.

Свойство Timeout должно быть задано перед вызовом метода GetRequestStream или GetResponse. Изменение свойства Timeout после вызова метода GetRequestStream или GetResponse не влияет

Свойство Timeout не влияет на асинхронные запросы, выполненные с помощью метода BeginGetResponse или BeginGetRequestStream.

Осторожность

В случае асинхронных запросов клиентское приложение реализует собственный механизм времени ожидания. См. пример в методе BeginGetResponse.

Чтобы указать время ожидания до истечения времени ожидания операции чтения или записи, используйте свойство ReadWriteTimeout.

Запрос системы доменных имен (DNS) может занять до 15 секунд для возврата или истечения времени ожидания. Если ваш запрос содержит имя узла, требующее разрешения, и вы устанавливаете Timeout значение менее 15 секунд, может потребоваться 15 секунд или более, прежде чем WebException будет создано, чтобы указать время ожидания для запроса.

Применяется к

См. также раздел