Partager via


HttpListener.EndGetContext(IAsyncResult) Méthode

Définition

Met fin à une opération asynchrone pour récupérer une demande du client entrante.

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

Paramètres

asyncResult
IAsyncResult

Objet IAsyncResult qui a été obtenu au moment du démarrage de l'opération asynchrone.

Retours

Objet HttpListenerContext qui représente la demande du client.

Exceptions

asyncResult n'a pas été obtenu en appelant la méthode BeginGetContext(AsyncCallback, Object).

asyncResult a la valeur null.

Un appel de fonction Win32 a échoué. Vérifiez la propriété ErrorCode de l’exception pour déterminer la cause de l’exception.

La méthode EndGetContext(IAsyncResult) a déjà été appelée pour l'objet asyncResult spécifié.

Cet objet est fermé.

Exemples

L’exemple de code suivant montre l’implémentation d’une méthode de rappel qui appelle la EndGetContext méthode.

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

Remarques

La EndGetContext méthode est appelée, généralement dans une méthode de rappel définie par l’application appelée par un délégué, pour obtenir l’objet HttpListenerContext qui contient une demande cliente entrante et sa réponse associée. Cette méthode termine une opération précédemment démarrée en appelant la BeginGetContext méthode. Si l’opération n’est pas terminée, cette méthode se bloque jusqu’à ce qu’elle le fasse.

Étant donné que l’appel de la EndGetContext méthode nécessite l’objet HttpListener , cet objet est généralement passé dans une méthode de rappel à l’aide de l’objet d’état passé à la BeginGetContext méthode. Vous pouvez obtenir cet objet d’état à l’aide de la AsyncState propriété de l’objet asyncResult .

Pour plus d’informations sur l’utilisation du modèle de programmation asynchrone, consultez Appel de méthodes synchrones de manière asynchrone.

Notes pour les appelants

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.

S’applique à