HttpListener.EndGetContext(IAsyncResult) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.