Udostępnij za pośrednictwem


FtpWebRequest.EndGetResponse(IAsyncResult) Metoda

Definicja

Kończy oczekującą operację asynchroniczną rozpoczętą z 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

Element IAsyncResult , który został zwrócony po rozpoczęciu operacji.

Zwraca

Odwołanie WebResponse zawierające FtpWebResponse wystąpienie. Ten obiekt zawiera odpowiedź serwera FTP na żądanie.

Wyjątki

asyncResult to null.

asyncResult nie został uzyskany przez wywołanie metody BeginGetResponse(AsyncCallback, Object).

Ta metoda została już wywołana dla operacji zidentyfikowanej przez asyncResult.

Wystąpił błąd przy użyciu serwera proxy HTTP.

Przykłady

Poniższy przykład kodu przedstawia zakończenie operacji asynchronicznej w celu uzyskania odpowiedzi. Ten przykład kodu jest częścią większego przykładu udostępnionego FtpWebRequest do omówienia klasy.

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

Uwagi

Jeśli operacja nie została ukończona w momencie EndGetResponse wywołania metody , EndGetResponse blokuje działanie do momentu zakończenia operacji. Aby zapobiec blokowaniu, przed wywołaniem metody EndGetResponsesprawdź IsCompleted właściwość .

Oprócz wyjątków odnotowanych w sekcji "Wyjątki" EndGetResponse ponownie dodaje wyjątki, które zostały zgłoszone podczas komunikacji z serwerem.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .NET Framework.

Uwagi dotyczące wywoływania

Ta metoda generuje ruch sieciowy.

Dotyczy

Zobacz też