HttpListener.EndGetContext(IAsyncResult) Método

Definição

Conclui uma operação assíncrona para recuperar um pedido de cliente recebido.

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 IAsyncResult objeto obtido quando a operação assíncrona foi iniciada.

Devoluções

Um HttpListenerContext objeto que representa o pedido do cliente.

Exceções

asyncResult não foi obtido chamando o BeginGetContext(AsyncCallback, Object) método.

asyncResult é null.

Uma chamada de função Win32 falhou. Verifique a propriedade da ErrorCode exceção para determinar a causa da dela.

O EndGetContext(IAsyncResult) método já era chamado para o objeto especificado asyncResult .

Este objeto está fechado.

Exemplos

O seguinte exemplo de código mostra a implementação de um método de callback 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

Observações

O EndGetContext método é chamado, normalmente dentro de um método de callback definido pela aplicação invocado por um delegado, para obter o HttpListenerContext objeto que contém um pedido cliente recebido e a sua resposta associada. Este método completa uma operação previamente iniciada ao chamar o BeginGetContext método. Se a operação não estiver concluída, este método bloqueia até que termine.

Como chamar o EndGetContext método requer o HttpListener objeto, este objeto é normalmente passado para um método de callback usando o objeto de estado passado no BeginGetContext método. Pode obter este objeto de estado usando a AsyncState propriedade do asyncResult objeto.

Para informações detalhadas sobre a utilização do modelo de programação assíncrona, veja Chamar Métodos Síncronos Assíncronos.

Notas para Chamadores

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Rastreamento de Rede no .NET Framework.

Aplica-se a