HttpWebRequest.Timeout Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el valor de tiempo de espera en milisegundos para los métodos GetResponse() y 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
Valor de propiedad
Número de milisegundos que se van a esperar antes de que se agote el tiempo de espera de la solicitud. El valor predeterminado es 100 000 milisegundos (100 segundos).
Excepciones
El valor especificado es menor que cero y no es Infinite.
Ejemplos
En el ejemplo de código siguiente se establece la propiedad Timeout del objeto 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)
Comentarios
Cautela
WebRequest
, HttpWebRequest
, ServicePoint
y WebClient
están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.
Timeout es el número de milisegundos que una solicitud sincrónica posterior realizada con el método GetResponse espera una respuesta y el método GetRequestStream espera una secuencia. El Timeout se aplica a toda la solicitud y respuesta, no individualmente a las llamadas de método GetRequestStream y GetResponse. Si el recurso no se devuelve dentro del período de tiempo de espera, la solicitud produce un WebException con la propiedad Status establecida en WebExceptionStatus.Timeout.
La propiedad Timeout debe establecerse antes de llamar al método GetRequestStream o GetResponse. Cambiar la propiedad Timeout después de llamar al método GetRequestStream o GetResponse no tiene ningún efecto
La propiedad Timeout no tiene ningún efecto en las solicitudes asincrónicas realizadas con el método BeginGetResponse o BeginGetRequestStream.
Cautela
En el caso de solicitudes asincrónicas, la aplicación cliente implementa su propio mecanismo de tiempo de espera. Consulte el ejemplo del método BeginGetResponse.
Para especificar la cantidad de tiempo de espera antes de que se agote el tiempo de espera de una operación de lectura o escritura, use la propiedad ReadWriteTimeout.
Una consulta del Sistema de nombres de dominio (DNS) puede tardar hasta 15 segundos en devolverse o agotar el tiempo de espera. Si la solicitud contiene un nombre de host que requiere resolución y establece Timeout en un valor inferior a 15 segundos, puede tardar 15 segundos o más antes de que se produzca un WebException para indicar un tiempo de espera en la solicitud.