HttpListener.EndGetContext(IAsyncResult) メソッド

定義

受信クライアント要求を取得する非同期操作を完了します。Completes an asynchronous operation to retrieve an incoming client request.

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

非同期操作の開始時に取得した IAsyncResult オブジェクト。An IAsyncResult object that was obtained when the asynchronous operation was started.

戻り値

クライアント要求を表す HttpListenerContext オブジェクト。An HttpListenerContext object that represents the client request.

例外

asyncResultBeginGetContext(AsyncCallback, Object) メソッドの呼び出しで取得できませんでした。asyncResult was not obtained by calling the BeginGetContext(AsyncCallback, Object) method.

asyncResultnullです。asyncResult is null.

Win32 関数呼び出しが失敗しました。A Win32 function call failed. 例外の ErrorCode プロパティを調べて、例外の原因を確認します。Check the exception's ErrorCode property to determine the cause of the exception.

EndGetContext(IAsyncResult) メソッドは、既に指定された asyncResult オブジェクトに対して呼び出されています。The EndGetContext(IAsyncResult) method was already called for the specified asyncResult object.

オブジェクトが閉じています。This object is closed.

次のコード例は、EndGetContext メソッドを呼び出すコールバックメソッドの実装を示しています。The following code example shows the implementation of a callback method that calls the EndGetContext method.

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

注釈

EndGetContext メソッドは、通常、デリゲートによって呼び出されるアプリケーション定義のコールバックメソッド内で呼び出され、受信クライアント要求とそれに関連付けられている応答を格納する HttpListenerContext オブジェクトを取得します。The EndGetContext method is called, usually within an application-defined callback method invoked by a delegate, to obtain the HttpListenerContext object that contains an incoming client request and its associated response. このメソッドは、BeginGetContext メソッドを呼び出すことによって以前に開始された操作を完了します。This method completes an operation previously started by calling the BeginGetContext method. 操作が完了していない場合、このメソッドは、処理が完了するまでブロックします。If the operation has not completed, this method blocks until it does.

EndGetContext メソッドを呼び出すには HttpListener オブジェクトが必要であるため、このオブジェクトは通常、BeginGetContext メソッドに渡される状態オブジェクトを使用してコールバックメソッドに渡されます。Because calling the EndGetContext method requires the HttpListener object, this object is typically passed into a callback method by using the state object passed into the BeginGetContext method. この状態オブジェクトは、asyncResult オブジェクトの AsyncState プロパティを使用して取得できます。You can obtain this state object by using the AsyncState property of the asyncResult object.

非同期プログラミングモデルの使用方法の詳細については、「同期メソッドの非同期呼び出し」を参照してください。For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously

注意 (呼び出し元)

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

適用対象