FtpWebRequest.EndGetResponse(IAsyncResult) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.