Partager via


FtpWebRequest.EndGetResponse(IAsyncResult) Méthode

Définition

Met fin à une opération asynchrone en attente commencée avec 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

Paramètres

asyncResult
IAsyncResult

Élément IAsyncResult retourné lors du démarrage de l'opération.

Retours

Référence WebResponse qui contient une instance de FtpWebResponse. Cet objet contient la réponse du serveur FTP à la demande.

Exceptions

asyncResult a la valeur null.

asyncResult n'a pas été obtenu en appelant BeginGetResponse(AsyncCallback, Object).

Cette méthode a déjà été appelée pour l'opération identifiée par asyncResult.

Une erreur s'est produite lors de l'utilisation d'un proxy HTTP.

Exemples

L’exemple de code suivant illustre la fin d’une opération asynchrone pour obtenir une réponse. Cet exemple de code fait partie d’un exemple plus large fourni pour la vue d’ensemble de la 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();
    }
}

Remarques

Si l’opération n’est pas terminée au moment où la EndGetResponse méthode est appelée, EndGetResponse se bloque jusqu’à ce que l’opération se termine. Pour éviter le blocage, vérifiez la IsCompleted propriété avant d’appeler EndGetResponse.

En plus des exceptions indiquées dans « Exceptions », EndGetResponse les exceptions qui ont été levées lors de la communication avec le serveur se ressaisient.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans le .NET Framework.

Notes pour les appelants

Cette méthode génère du trafic réseau.

S’applique à

Voir aussi