HttpListener.EndGetContext(IAsyncResult) Metodo

Definizione

Completa un'operazione asincrona per recuperare una richiesta del client in ingresso.

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

Parametri

asyncResult
IAsyncResult

Oggetto IAsyncResult ottenuto all'avvio dell'operazione asincrona.

Restituisce

Oggetto HttpListenerContext che rappresenta la richiesta del client.

Eccezioni

asyncResult non è stato ottenuto chiamando il metodo BeginGetContext(AsyncCallback, Object).

asyncResult è null.

Errore di una chiamata di funzione Win32. Verificare la proprietà ErrorCode dell'eccezione per determinare la causa dell'eccezione.

Il metodo EndGetContext(IAsyncResult) era già stato chiamato per l'oggetto asyncResult specificato.

Questo oggetto è chiuso.

Esempio

Nell'esempio di codice seguente viene illustrata l'implementazione di un metodo di callback che chiama il EndGetContext metodo .

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

Commenti

Il EndGetContext metodo viene chiamato, in genere all'interno di un metodo di callback definito dall'applicazione richiamato da un delegato, per ottenere l'oggetto che contiene una richiesta client in ingresso e la HttpListenerContext relativa risposta associata. Questo metodo completa un'operazione avviata in precedenza chiamando il BeginGetContext metodo . Se l'operazione non è stata completata, questo metodo blocca fino a quando non viene eseguito.

Poiché la chiamata al metodo richiede l'oggetto EndGetContext , questo oggetto viene in genere passato a un metodo di callback usando l'oggetto HttpListener state passato al BeginGetContext metodo . È possibile ottenere questo oggetto stato usando la AsyncState proprietà dell'oggetto asyncResult .

Per informazioni dettagliate sull'uso del modello di programmazione asincrona, vedere Chiamata di metodi sincroni in modo asincrono.

Note per i chiamanti

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Si applica a