FtpWebRequest.EndGetResponse(IAsyncResult) Metodo

Definizione

Termina un'operazione asincrona in sospeso avviata con il metodo 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

Parametri

asyncResult
IAsyncResult

Oggetto IAsyncResult restituito all'avvio dell'operazione.

Restituisce

Riferimento WebResponse in cui è contenuta un'istanza di FtpWebResponse. Questo oggetto contiene la risposta del server FTP alla richiesta.

Eccezioni

asyncResult è null.

asyncResult non è stato ottenuto chiamando il metodo BeginGetResponse(AsyncCallback, Object).

Questo metodo è già stato chiamato per l'operazione identificata da asyncResult.

Errore durante l'utilizzo di un proxy HTTP.

Esempio

Nell'esempio di codice seguente viene illustrato come terminare un'operazione asincrona per ottenere una risposta. Questo esempio di codice fa parte di un esempio più ampio fornito per la panoramica della 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();
    }
}

Commenti

Se l'operazione non è stata completata al momento della chiamata al EndGetResponse metodo, EndGetResponse blocca fino al completamento dell'operazione. Per evitare il blocco, controllare la IsCompleted proprietà prima di chiamare EndGetResponse.

Oltre alle eccezioni indicate in "Eccezioni", EndGetResponse vengono rigenerate le eccezioni generate durante la comunicazione con il server.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Note per i chiamanti

Questo metodo genera il traffico di rete.

Si applica a

Vedi anche