FtpWebRequest.EndGetResponse(IAsyncResult) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.