Compartir a través de


FtpWebRequest.EndGetResponse(IAsyncResult) Método

Definición

Finaliza una operación asincrónica pendiente iniciada con 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

Objeto IAsyncResult que se devuelve cuando se inicia la operación.

Devoluciones

Referencia a WebResponse que contiene una instancia de FtpWebResponse. Este objeto contiene la respuesta del servidor FTP a la solicitud.

Excepciones

asyncResult es null.

asyncResult no se obtuvo mediante una llamada a BeginGetResponse(AsyncCallback, Object).

Ya se llamó a este método para la operación identificada por asyncResult.

Se produjo un error utilizando un proxy HTTP.

Ejemplos

En el ejemplo de código siguiente se muestra cómo finalizar una operación asincrónica para obtener una respuesta. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la información general de la FtpWebRequest clase.

// 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();
    }
}

Comentarios

Si la operación no se ha completado en el momento en que se llama al EndGetResponse método , EndGetResponse se bloquea hasta que se complete la operación. Para evitar el bloqueo, compruebe la IsCompleted propiedad antes de llamar a EndGetResponse.

Además de las excepciones indicadas en "Excepciones", EndGetResponse vuelve a iniciar las excepciones que se produjeron al comunicarse con el servidor.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.

Notas a los autores de las llamadas

Este método genera tráfico de red.

Se aplica a

Consulte también