Share via


HttpListener.EndGetContext(IAsyncResult) Metode

Definisi

Menyelesaikan operasi asinkron untuk mengambil permintaan klien masuk.

public:
 System::Net::HttpListenerContext ^ EndGetContext(IAsyncResult ^ asyncResult);
public System.Net.HttpListenerContext EndGetContext (IAsyncResult asyncResult);
member this.EndGetContext : IAsyncResult -> System.Net.HttpListenerContext
Public Function EndGetContext (asyncResult As IAsyncResult) As HttpListenerContext

Parameter

asyncResult
IAsyncResult

Objek IAsyncResult yang diperoleh ketika operasi asinkron dimulai.

Mengembalikan

Objek HttpListenerContext yang mewakili permintaan klien.

Pengecualian

asyncResult tidak diperoleh dengan memanggil BeginGetContext(AsyncCallback, Object) metode .

asyncResultadalah null.

Panggilan fungsi Win32 gagal. Periksa properti pengecualian ErrorCode untuk menentukan penyebab pengecualian.

Metode EndGetContext(IAsyncResult) ini sudah dipanggil untuk objek yang ditentukan asyncResult .

Objek ini ditutup.

Contoh

Contoh kode berikut menunjukkan implementasi metode panggilan balik yang memanggil EndGetContext metode .

public static void ListenerCallback(IAsyncResult result)
{
    HttpListener listener = (HttpListener) result.AsyncState;
    // Call EndGetContext to complete the asynchronous operation.
    HttpListenerContext context = listener.EndGetContext(result);
    HttpListenerRequest request = context.Request;
    // Obtain a response object.
    HttpListenerResponse response = context.Response;
    // Construct a response.
    string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
    // Get a response stream and write the response to it.
    response.ContentLength64 = buffer.Length;
    System.IO.Stream output = response.OutputStream;
    output.Write(buffer,0,buffer.Length);
    // You must close the output stream.
    output.Close();
}
Public Shared Sub ListenerCallback(ByVal result As IAsyncResult)
    Dim listener As HttpListener = CType(result.AsyncState, HttpListener)
    ' Call EndGetContext to complete the asynchronous operation.
    Dim context As HttpListenerContext = listener.EndGetContext(result)
    Dim request As HttpListenerRequest = context.Request
    ' Obtain a response object.
    Dim response As HttpListenerResponse = context.Response
    ' Construct a response.
    Dim responseString As String = "<HTML><BODY> Hello world!</BODY></HTML>"
    Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(responseString)
    ' Get a response stream and write the response to it.
    response.ContentLength64 = buffer.Length
    Dim output As System.IO.Stream = response.OutputStream
    output.Write(buffer, 0, buffer.Length)
    ' You must close the output stream.
    output.Close()
End Sub

Keterangan

Metode EndGetContext ini dipanggil, biasanya dalam metode panggilan balik yang ditentukan aplikasi yang dipanggil oleh delegasi, untuk mendapatkan HttpListenerContext objek yang berisi permintaan klien masuk dan respons terkait. Metode ini menyelesaikan operasi yang sebelumnya dimulai dengan memanggil BeginGetContext metode . Jika operasi belum selesai, metode ini akan memblokir hingga selesai.

Karena memanggil EndGetContext metode memerlukan HttpListener objek , objek ini biasanya diteruskan ke metode panggilan balik dengan menggunakan objek status yang diteruskan ke BeginGetContext metode . Anda dapat memperoleh objek status ini dengan menggunakan AsyncState properti asyncResult objek .

Untuk informasi mendetail tentang menggunakan model pemrograman asinkron, lihat Memanggil Metode Sinkron Secara Asinkron.

Catatan Bagi Pemanggil

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

Berlaku untuk