WebRequest.Timeout Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает длительность времени в миллисекундах до истечения времени ожидания запроса.
public:
virtual property int Timeout { int get(); void set(int value); };
public virtual int Timeout { get; set; }
member this.Timeout : int with get, set
Public Overridable Property Timeout As Integer
Значение свойства
Длительность времени в миллисекундах до истечения времени ожидания запроса или значения Infinite, чтобы указать, что запрос не истекает. Значение по умолчанию определяется классом-потомком.
Исключения
Любая попытка получить или задать свойство, если свойство не переопределяется в классе-потомке.
Примеры
В следующем примере свойство Timeout присваивается 10000 миллисекундам. Если срок ожидания истекает до возвращения ресурса, создается WebException.
// Create a new WebRequest Object to the mentioned URL.
WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" );
Console::WriteLine( "\nThe Timeout time of the request before setting is : {0} milliseconds", myWebRequest->Timeout );
// Set the 'Timeout' property in Milliseconds.
myWebRequest->Timeout = 10000;
// This request will throw a WebException if it reaches the timeout limit
// before it is able to fetch the resource.
WebResponse^ myWebResponse = myWebRequest->GetResponse();
// Create a new WebRequest Object to the mentioned URL.
WebRequest myWebRequest=WebRequest.Create("http://www.contoso.com");
Console.WriteLine("\nThe Timeout time of the request before setting is : {0} milliseconds",myWebRequest.Timeout);
// Set the 'Timeout' property in Milliseconds.
myWebRequest.Timeout=10000;
// This request will throw a WebException if it reaches the timeout limit before it is able to fetch the resource.
WebResponse myWebResponse=myWebRequest.GetResponse();
' Create a new WebRequest Object to the mentioned URL.
Dim myWebRequest As WebRequest = WebRequest.Create("http://www.contoso.com")
Console.WriteLine(ControlChars.Cr + "The Timeout time of the request before setting is : {0} milliseconds", myWebRequest.Timeout)
' Set the 'Timeout' property in Milliseconds.
myWebRequest.Timeout = 10000
' Assign the response object of 'WebRequest' to a 'WebResponse' variable.
Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
Комментарии
Осторожность
WebRequest
, HttpWebRequest
, ServicePoint
и WebClient
устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.
Свойство Timeout указывает длительность времени (в миллисекундах), пока запрос не истекает и не выдает WebException. Свойство Timeout влияет только на синхронные запросы, выполненные с помощью метода GetResponse. Для ожидания асинхронных запросов используйте метод Abort.
Заметка
Класс WebRequest — это класс abstract
. Фактическое поведение экземпляров WebRequest во время выполнения определяется классом-потомком, возвращаемым методом WebRequest.Create. Дополнительные сведения о значениях и исключениях по умолчанию см. в документации по классам-потомкам, таким как HttpWebRequest и FileWebRequest.
Примечания для тех, кто наследует этот метод
Классы-потомки сигнализируют о времени ожидания путем создания WebException с полем Status для Timeout. Если для Timeout задано значение Infinite время ожидания класса-потомка не истекает.