Compartilhar via


FtpWebRequest.EndGetResponse(IAsyncResult) Método

Definição

Encerra uma operação assíncrona pendente iniciada com BeginGetResponse(AsyncCallback, Object).

public:
 override System::Net::WebResponse ^ EndGetResponse(IAsyncResult ^ asyncResult);
public override System.Net.WebResponse EndGetResponse (IAsyncResult asyncResult);
override this.EndGetResponse : IAsyncResult -> System.Net.WebResponse
Public Overrides Function EndGetResponse (asyncResult As IAsyncResult) As WebResponse

Parâmetros

asyncResult
IAsyncResult

O IAsyncResult retornado quando a operação foi iniciada.

Retornos

Uma referência WebResponse que contém uma instância FtpWebResponse. Esse objeto contém a resposta do servidor FTP para a solicitação.

Exceções

asyncResult é null.

asyncResult não foi obtido chamando BeginGetResponse(AsyncCallback, Object).

Esse método já foi chamado para a operação identificada por asyncResult.

Ocorreu um erro usando um proxy HTTP.

Exemplos

O exemplo de código a seguir demonstra o fim de uma operação assíncrona para obter uma resposta. Este exemplo de código faz parte de um exemplo maior fornecido para a visão geral da FtpWebRequest classe.

// The EndGetResponseCallback method  
// completes a call to BeginGetResponse.
static void EndGetResponseCallback( IAsyncResult^ ar )
{
   FtpState^ state = dynamic_cast<FtpState^>(ar->AsyncState);
   FtpWebResponse ^ response = nullptr;
   try
   {
      response = dynamic_cast<FtpWebResponse^>(state->Request->EndGetResponse( ar ));
      response->Close();
      state->StatusDescription = response->StatusDescription;

      // Signal the main application thread that 
      // the operation is complete.
      state->OperationComplete->Set();
   }
   // Return exceptions to the main application thread.
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Error getting response." );
      state->OperationException = e;
      state->OperationComplete->Set();
   }
}
// The EndGetResponseCallback method
// completes a call to BeginGetResponse.
private static void EndGetResponseCallback(IAsyncResult ar)
{
    FtpState state = (FtpState) ar.AsyncState;
    FtpWebResponse response = null;
    try
    {
        response = (FtpWebResponse) state.Request.EndGetResponse(ar);
        response.Close();
        state.StatusDescription = response.StatusDescription;
        // Signal the main application thread that
        // the operation is complete.
        state.OperationComplete.Set();
    }
    // Return exceptions to the main application thread.
    catch (Exception e)
    {
        Console.WriteLine ("Error getting response.");
        state.OperationException = e;
        state.OperationComplete.Set();
    }
}

Comentários

Se a operação não tiver sido concluída no momento em que o EndGetResponse método for chamado, EndGetResponse bloqueará até que a operação seja concluída. Para evitar o bloqueio, verifique a IsCompleted propriedade antes de chamar EndGetResponse.

Além das exceções indicadas em "Exceções", EndGetResponse o gera novamente exceções que foram geradas durante a comunicação com o servidor.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede no .NET Framework.

Notas aos Chamadores

Esse método gera tráfego de rede.

Aplica-se a

Confira também