HttpWebRequest.Timeout Propiedad

Definición

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

Se aplica a

Consulte también