HttpWebRequest.Timeout Propriedade

Definição

Obtém ou define o valor de tempo limite em milissegundos para os métodos GetResponse() e 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 da propriedade

O número de milissegundos a aguardar antes do tempo limite da solicitação. O valor padrão é 100.000 milissegundos (100 segundos).

Exceções

O valor especificado é menor que zero e não é Infinite.

Exemplos

O exemplo de código a seguir define a propriedade Timeout do 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)

Comentários

Cuidado

WebRequest, HttpWebRequest, ServicePointe WebClient estão obsoletos e você não deve usá-los para um novo desenvolvimento. Em vez disso, use HttpClient.

Timeout é o número de milissegundos que uma solicitação síncrona subsequente feita com o método GetResponse aguarda uma resposta e o método GetRequestStream aguarda um fluxo. O Timeout se aplica a toda a solicitação e resposta, não individualmente às chamadas de método GetRequestStream e GetResponse. Se o recurso não for retornado dentro do período de tempo limite, a solicitação gerará um WebException com a propriedade Status definida como WebExceptionStatus.Timeout.

A propriedade Timeout deve ser definida antes que o método GetRequestStream ou GetResponse seja chamado. Alterar a propriedade Timeout depois de chamar o método GetRequestStream ou GetResponse não tem efeito

A propriedade Timeout não tem efeito sobre solicitações assíncronas feitas com o método BeginGetResponse ou BeginGetRequestStream.

Cuidado

No caso de solicitações assíncronas, o aplicativo cliente implementa seu próprio mecanismo de tempo limite. Consulte o exemplo no método BeginGetResponse.

Para especificar o tempo de espera antes do tempo limite de uma operação de leitura ou gravação, use a propriedade ReadWriteTimeout.

Uma consulta DNS (Sistema de Nomes de Domínio) pode levar até 15 segundos para retornar ou um tempo limite. Se sua solicitação contiver um nome de host que exija resolução e você definir Timeout como um valor inferior a 15 segundos, poderá levar 15 segundos ou mais antes que um WebException seja gerado para indicar um tempo limite em sua solicitação.

Aplica-se a

Confira também