HttpListener.EndGetContext(IAsyncResult) Méthode
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- asyncResult
- IAsyncResult
Objet IAsyncResult qui a été obtenu au moment du démarrage de l'opération asynchrone.
Objet HttpListenerContext qui représente la demande du client.
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é.
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
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.
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.
Produit | Versions |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires: