Sdílet prostřednictvím


FtpWebRequest.EndGetResponse(IAsyncResult) Metoda

Definice

Ukončí čekající asynchronní operaci spuštěnou pomocí 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

Parametry

asyncResult
IAsyncResult

Hodnota vrácená IAsyncResult 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)metody .

Tato metoda již byla volána pro operaci identifikovanou pomocí asyncResult.

Při používání 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 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 blokuje se, dokud se operace nedokončila. Chcete-li zabránit blokování, zkontrolujte IsCompleted vlastnost před voláním EndGetResponsemetody .

Kromě výjimek uvedených v části Výjimky EndGetResponse znovu načítá 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 naleznete 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é