HttpListener.EndGetContext(IAsyncResult) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Conclui uma operação assíncrona para recuperar uma solicitação de cliente recebida.
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
Parâmetros
- asyncResult
- IAsyncResult
Um objeto IAsyncResult obtido quando a operação assíncrona foi iniciada.
Retornos
Um objeto HttpListenerContext que representa a solicitação do cliente.
Exceções
asyncResult
não foi obtido ao chamar o método BeginGetContext(AsyncCallback, Object).
asyncResult
é null
.
Falha em uma chamada de função do Win32. Verifique a propriedade ErrorCode da exceção para determinar a causa da exceção.
O método EndGetContext(IAsyncResult) já foi chamado para o objeto asyncResult
especificado.
Este objeto está fechado.
Exemplos
O exemplo de código a seguir mostra a implementação de um método de retorno de chamada que chama o EndGetContext método .
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
Comentários
O EndGetContext método é chamado, geralmente dentro de um método de retorno de chamada definido pelo aplicativo invocado por um delegado, para obter o HttpListenerContext objeto que contém uma solicitação de cliente de entrada e sua resposta associada. Esse método conclui uma operação iniciada anteriormente chamando o BeginGetContext método . Se a operação não tiver sido concluída, esse método será bloqueado até que ela o faça.
Como chamar o EndGetContext método requer o HttpListener objeto , esse objeto normalmente é passado para um método de retorno de chamada usando o objeto de estado passado para o BeginGetContext método . Você pode obter esse objeto de estado usando a AsyncState propriedade do asyncResult
objeto .
Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte Chamando métodos síncronos de forma assíncrona.
Notas aos Chamadores
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede no .NET Framework.