HttpListener.GetContext HttpListener.GetContext HttpListener.GetContext HttpListener.GetContext Method

定義

受信要求を待機し、受信するとその要求を返します。Waits for an incoming request and returns when one is received.

public:
 System::Net::HttpListenerContext ^ GetContext();
public System.Net.HttpListenerContext GetContext ();
member this.GetContext : unit -> System.Net.HttpListenerContext
Public Function GetContext () As HttpListenerContext

戻り値

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

例外

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

このオブジェクトが開始されていないか、現在停止されています。This object has not been started or is currently stopped.

または-or- HttpListener に、応答対象の URI (Uniform Resource Identifier) がありません。The HttpListener does not have any Uniform Resource Identifier (URI) prefixes to respond to.

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

次のコード例は、このメソッドの呼び出しを示しています。The following code example demonstrates calling this method.

// This example requires the System and System.Net namespaces.
public static void SimpleListenerExample(string[] prefixes)
{
    if (!HttpListener.IsSupported)
    {
        Console.WriteLine ("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
        return;
    }
    // URI prefixes are required,
    // for example "http://contoso.com:8080/index/".
    if (prefixes == null || prefixes.Length == 0)
      throw new ArgumentException("prefixes");
    
    // Create a listener.
    HttpListener listener = new HttpListener();
    // Add the prefixes.
    foreach (string s in prefixes)
    {
        listener.Prefixes.Add(s);
    }
    listener.Start();
    Console.WriteLine("Listening...");
    // Note: The GetContext method blocks while waiting for a request. 
    HttpListenerContext context = listener.GetContext();
    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();
    listener.Stop();
}
Public Shared Sub SimpleListenerExample(prefixes As String())
    If Not HttpListener.IsSupported Then
        Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.")
        Return
    End If
    ' URI prefixes are required,
    ' for example "http://contoso.com:8080/index/".
    If prefixes Is Nothing Or prefixes.Length = 0 Then
        Throw New ArgumentException("prefixes")
    End If

    ' Create a listener
    Dim listener = New HttpListener()

    For Each s As String In prefixes
        listener.Prefixes.Add(s)
    Next
    listener.Start()
    Console.WriteLine("Listening...")
    ' Note: The GetContext method blocks while waiting for a request.
    Dim context As HttpListenerContext = listener.GetContext()
    Console.WriteLine("Listening...")
    ' Obtain a response object
    Dim request As HttpListenerRequest = context.Request
    ' Construct a response.
    Dim response As HttpListenerResponse = context.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()
    listener.Stop()
End Sub

注釈

このメソッドを呼び出す前に、 Startメソッドを呼び出し、 Prefixesプロパティによって返されるに uri 文字列を追加することによってHttpListenerPrefixCollection 、リッスンする uri プレフィックスを少なくとも1つ追加する必要があります。Before calling this method, you must call the Start method and add at least one URI prefix to listen for by adding the URI strings to the HttpListenerPrefixCollection returned by the Prefixes property. プレフィックスの詳細については、 HttpListenerクラスの概要に関する記述を参照してください。For a detailed description of prefixes, see the HttpListener class overview.

このメソッドは、受信要求を待機している間、ブロックします。This method blocks while waiting for an incoming request. アプリケーションがブロックされないように (個別のスレッドで) 受信要求を非同期的に処理する場合はBeginGetContext 、メソッドを使用します。If you want incoming requests to be processed asynchronously (on separate threads) so that your application does not block, use the BeginGetContext method.

注意 (呼び出し元)

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

適用対象