Freigeben über


HttpListener.EndGetContext(IAsyncResult) Methode

Definition

Schließt einen asynchronen Vorgang ab, um eine eingehende Clientanforderung abzurufen.

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

Ein IAsyncResult-Objekt, das beim Starten des asynchronen Vorgangs abgerufen wurde.

Gibt zurück

Ein HttpListenerContext-Objekt, das die Clientanforderung darstellt.

Ausnahmen

asyncResult wurde nicht durch Aufruf der BeginGetContext(AsyncCallback, Object)-Methode abgerufen.

asyncResult ist null.

Bei einem Win32-Funktionsaufruf ist ein Fehler aufgetreten. Überprüfen Sie die ErrorCode-Eigenschaft der Ausnahme, um die Ursache der Ausnahme zu bestimmen.

Die EndGetContext(IAsyncResult)-Methode wurde bereits für das angegebene asyncResult-Objekt aufgerufen.

Dieses Objekt ist geschlossen.

Beispiele

Das folgende Codebeispiel zeigt die Implementierung einer Rückrufmethode, die die EndGetContext -Methode aufruft.

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

Hinweise

Die EndGetContext -Methode wird in der Regel innerhalb einer anwendungsdefinierten Rückrufmethode aufgerufen, die von einem Delegaten aufgerufen wird, um das HttpListenerContext Objekt abzurufen, das eine eingehende Clientanforderung und die zugehörige Antwort enthält. Diese Methode schließt einen Vorgang ab, der zuvor durch Aufrufen der BeginGetContext -Methode gestartet wurde. Wenn der Vorgang nicht abgeschlossen wurde, wird diese Methode blockiert, bis dies der Fall ist.

Da für den Aufruf der EndGetContext -Methode das HttpListener -Objekt erforderlich ist, wird dieses Objekt in der Regel mithilfe des an die BeginGetContext -Methode übergebenen Zustandsobjekts an eine Rückrufmethode übergeben. Sie können dieses Zustandsobjekt mithilfe der AsyncState -Eigenschaft des asyncResult -Objekts abrufen.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen synchroner Methoden.

Hinweise für Aufrufer

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Gilt für: