Share via


HttpListener.EndGetContext(IAsyncResult) Yöntem

Tanım

Gelen istemci isteğini almak için zaman uyumsuz bir işlemi tamamlar.

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

Parametreler

asyncResult
IAsyncResult

IAsyncResult Zaman uyumsuz işlem başlatıldığında elde edilen nesne.

Döndürülenler

HttpListenerContext İstemci isteğini temsil eden bir nesne.

Özel durumlar

asyncResult yöntemi çağrılarak BeginGetContext(AsyncCallback, Object) elde edilemedi.

asyncResult, null değeridir.

Win32 işlev çağrısı başarısız oldu. Özel durumun nedenini belirlemek için özel durumun ErrorCode özelliğini denetleyin.

Yöntemi EndGetContext(IAsyncResult) belirtilen asyncResult nesne için zaten çağrıldı.

Bu nesne kapatıldı.

Örnekler

Aşağıdaki kod örneği, yöntemini çağıran bir geri çağırma yönteminin EndGetContext uygulamasını gösterir.

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

Açıklamalar

yöntemi EndGetContext , gelen istemci isteğini ve ilişkili yanıtını içeren nesneyi almak HttpListenerContext için genellikle bir temsilci tarafından çağrılan uygulama tanımlı bir geri çağırma yöntemi içinde çağrılır. Bu yöntem, daha önce yöntemini çağırarak BeginGetContext başlatılan bir işlemi tamamlar. İşlem tamamlanmadıysa, bu yöntem tamamlanana kadar engeller.

yöntemini çağırmak EndGetContext nesne gerektirdiğinden HttpListener , bu nesne genellikle yöntemine geçirilen durum nesnesi kullanılarak bir geri çağırma yöntemine BeginGetContext geçirilir. Nesnesinin AsyncState özelliğini asyncResult kullanarak bu durum nesnesini elde edebilirsiniz.

Zaman uyumsuz programlama modelini kullanma hakkında ayrıntılı bilgi için bkz. Zaman Uyumlu Yöntemleri Zaman Uyumsuz Olarak Çağırma.

Arayanlara Notlar

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için .NET Framework ağ izleme bölümüne bakın.

Şunlara uygulanır