Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 22743|Ответ: 0

[Источник] Реализуйте простой HTTP-сервис с помощью HttpListener

[Скопировать ссылку]
Опубликовано 02.12.2015 16:56:31 | | |
HttpListener предоставляет простой, программируемый и управляемый слушатель протокола HTTP. Это позволяет легко предоставлять некоторые HTTP-сервисы без необходимости запускать крупную программу вроде IIS.

Примечание: этот класс доступен только на компьютерах с операционными системами Windows XP SP2 или Windows Server 2003.

Общие шаги использования HTTP-сервисов следующие:

Создайте объект HTTP-слушателя и инициализируйте его
Добавьте префикс URI, который нужно слушать
Начните слушать запросы клиентов
Обработка HTTP-запросов от клиентов
Отключите HTTP-слушатель
Шаги 3 и 4 могут быть циклично выполнены для предоставления услуг, запрошенных несколькими клиентами.

Создать объект-слушатель HTTP

Чтобы создать объект HTTP-слушателя, достаточно создать новый объект HttpListener.

Слушатель HttpListener = новый HttpListener();

Инициализация требует следующих двух шагов

Вы можете добавить диапазон URL для прослушивания в слушателе. Префиксы с помощью следующей функции:
слушателя. Префиксы. Add(prefix) //prefix должен заканчиваться на '/'
Звоните слушателю. Start() привязывает порт и начинает слушать нужды клиента.
Принимать HTTP-запросы

В .NET 2.0 доступ к объектам запроса и ответа, используемым классом HttpListener, предоставляется через объект HttpListenerContext.

Самый простой способ получить HttpListenerContext следующий:

HttpListenerContext context = слушатель. GetContext();

Этот метод блокирует функцию вызова до получения клиентского запроса, и если вы хотите повысить скорость отклика, можно использовать асинхронный метод слушателя. BeginGetContext() для получения объекта HttpListenerContext.

Обработка HTTP-запросов

После получения HttpListenerContext вы можете получить объект, представляющий запрос клиента, через атрибут Запрос, и объект, представляющий ответ, который HttpListener отправит клиенту через атрибут Response.

HttpListenerRequest request = контекст. Запрос;
Ответ HttpListenerResponse = контекст. Response;

Объект HttpListenerRequest здесь похож на использование Request and Response в Asp и объекте HttpListenerResponse, поэтому я не буду много рассказывать, для конкретного использования вы можете посмотреть пример ниже.

Отключите HTTP-слушатель

Позвонив слушателю. Stop() отключает слушатель и освобождает нужные ресурсы

Пример кода:

используя System;
с использованием System.Collections.Generic;
с использованием System.Text;

используя System.Net;

пространство имён ConsoleApplication1
{
    Программа класса
    {
        static void Main(string[] args)
        {
            Слушатель HttpListener = новый HttpListener();
            слушателя. Префиксы.Add("http://localhost/"); Добавьте диапазон URL, которые нужно прослушать
            слушателя. Start(); Начните слушать порт и получать запросы от клиентов
            Console.WriteLine («Прослушивание...»);

            Блокирует основную функцию до получения запроса клиента
            HttpListenerContext context = слушатель. GetContext();
            HttpListenerRequest request = контекст. Запрос;
            Ответ HttpListenerResponse = контекст. Response;

            ответ строкиСтрока = строка. Format(<HTML><BODY>" {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Выводите соответствующую информацию клиенту.
            Ответ. ContentLength64 = буфер. Длина;
            System.IO.Stream output = ответ. OutputStream;
            выход. Write(buffer, 0, buffer. Длина);
            Закройте выходной поток, чтобы освободить соответствующие ресурсы
            выход. Close();

            слушателя. Стоп(); Выключите HttpListener
        }
    }
}

Программа относительно проста: сначала создаётся HTTP-слушатель для реализации сервиса домена «http://localhost/time/», при получении удалёного запроса она преобразует текущее время в выходную строку для клиента, а затем закрывает слушатель.





Предыдущий:Проблемы и решения для междоменных вызовов AJAX ASP.NET MVC или WebAPI сервисов
Следующий:3 декабря 2015 года сайт был официально переименован в «Code Farmer Network» и уведомлён!
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com