FtpWebRequest.EndGetResponse(IAsyncResult) Metoda

Definice

Ukončí čekající asynchronní operaci spuštěnou pomocí BeginGetResponse(AsyncCallback, Object)příkazu .

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

Parametry

asyncResult
IAsyncResult

Hodnota IAsyncResult vrácená při spuštění operace.

Návraty

Odkaz WebResponse , který obsahuje FtpWebResponse instanci. Tento objekt obsahuje odpověď serveru FTP na požadavek.

Výjimky

asyncResult je null.

asyncResult nebyl získán voláním BeginGetResponse(AsyncCallback, Object).

Tato metoda již byla volána pro operaci identifikovanou nástrojem asyncResult.

Při použití proxy serveru HTTP došlo k chybě.

Příklady

Následující příklad kódu ukazuje ukončení asynchronní operace pro získání odpovědi. Tento příklad kódu je součástí většího příkladu FtpWebRequest , který je k dispozici pro přehled třídy.

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

Poznámky

Pokud se operace nedokončila v době EndGetResponse , kdy je volána metoda, EndGetResponse zablokuje ji, dokud se operace nedokončila. Pokud chcete zabránit blokování, zkontrolujte vlastnost před voláním IsCompletedEndGetResponsepříkazu .

Kromě výjimek uvedených v části Výjimky EndGetResponse znovu přidává výjimky, které byly vyvolány při komunikaci se serverem.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámky pro volající

Tato metoda generuje síťový provoz.

Platí pro

Viz také