Прочитать на английском

Поделиться через


HttpListener.GetContext Метод

Определение

Ожидает входящий запрос и выполняет возврат при его получении.

C#
public System.Net.HttpListenerContext GetContext();

Возвращаемое значение

Объект HttpListenerContext, представляющий клиентский запрос.

Исключения

Вызов функции Win32 завершился с ошибкой. Проверьте свойство исключения ErrorCode, чтобы определить причину исключения.

Этот объект не был запущен или в настоящее время остановлен.

-или-

Прослушиватель HttpListener не имеет префиксов URI для ответа.

Данный объект закрыт.

Примеры

В следующем примере кода демонстрируется вызов этого метода.

C#
// 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();
}

Комментарии

Перед вызовом этого метода необходимо вызвать Start метод и добавить по крайней мере один префикс URI для прослушивания, добавив строки URI в объект , HttpListenerPrefixCollection возвращаемый свойством Prefixes . Подробное описание префиксов см. в обзоре HttpListener класса.

Этот метод блокируется при ожидании входящего запроса. Если вы хотите, чтобы входящие запросы обрабатывались асинхронно (в отдельных потоках), чтобы приложение не блокировало, используйте BeginGetContext метод .

Примечания для тех, кто вызывает этот метод

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в .NET Framework.

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1