Bagikan melalui


FtpWebRequest.EndGetResponse(IAsyncResult) Metode

Definisi

Mengakhiri operasi asinkron yang tertunda dimulai dengan 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

Parameter

asyncResult
IAsyncResult

IAsyncResult yang dikembalikan ketika operasi dimulai.

Mengembalikan

Referensi WebResponse yang berisi FtpWebResponse instans. Objek ini berisi respons server FTP terhadap permintaan tersebut.

Pengecualian

asyncResultadalah null.

asyncResult tidak diperoleh dengan memanggil BeginGetResponse(AsyncCallback, Object).

Metode ini sudah dipanggil untuk operasi yang diidentifikasi oleh asyncResult.

Terjadi kesalahan menggunakan proksi HTTP.

Contoh

Contoh kode berikut menunjukkan mengakhiri operasi asinkron untuk mendapatkan respons. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk FtpWebRequest gambaran umum kelas.

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

Keterangan

Jika operasi belum selesai pada saat EndGetResponse metode dipanggil, EndGetResponse blokir hingga operasi selesai. Untuk mencegah pemblokiran, periksa IsCompleted properti sebelum memanggil EndGetResponse.

Selain pengecualian yang dicatat dalam "Pengecualian," EndGetResponse memunculkan kembali pengecualian yang dilemparkan saat berkomunikasi dengan server.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Catatan Bagi Pemanggil

Metode ini menghasilkan lalu lintas jaringan.

Berlaku untuk

Lihat juga