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 Timeout propriedade do HttpWebRequest objeto .

// 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

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

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

A Timeout propriedade não tem efeito sobre solicitações assíncronas feitas com o BeginGetResponse método 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 BeginGetResponse método .

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

Uma consulta DNS (Sistema de Nomes de Domínio) pode levar até 15 segundos para retornar ou atingir o 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, pode levar 15 segundos ou mais até que um WebException seja gerado para indicar um tempo limite em sua solicitação.

Aplica-se a

Confira também