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


Базовая служба HTTP

В примере BasicHttpService показано, как реализовать службу на основе HTTP, на основе RPC , часто называемую службой POX (обычный старый XML) с помощью модели REST Программирования Windows Communication Foundation (WCF). Этот пример состоит из двух компонентов: локальной http-службы WCF (Service.cs) и консольного приложения (Program.cs), создающего службу и вызывающего ее.

Подробные сведения об образце

Служба WCF предоставляет 2 операции EchoWithGet и EchoWithPostвозвращает строку, переданную в качестве входных данных.

К операции EchoWithGet добавляется заметка WebGetAttribute, указывающим на обработку операцией HTTP-запросов GET. Поскольку WebGetAttribute не указывает явно UriTemplate, оператор ожидает передачи входной строки с помощью параметра строки запроса с именем s. Обратите внимание, что формат URI, ожидаемого службой, может быть изменен с помощью свойства UriTemplate.

К операции EchoWithPost добавляется заметка WebInvokeAttribute, указывающая на то, что это не является операцией GET (имеющей побочные эффекты). Поскольку WebInvokeAttribute не указывает явно Method, операция обрабатывает HTTP-запросы POST, содержащие строку в тексте запроса (например, в формате XML). Обратите внимание, что метод HTTP и формат URI запроса можно изменить с помощью свойств Method и UriTemplate соответственно.

Файл App.config настраивает для службы WCF конечную точку по умолчанию WebHttpEndpoint, для свойства которого HelpEnabled задано значение true. В результате инфраструктура WCF создает автоматическую страницу http://localhost:8000/Customers/help справки на основе HTML, которая содержит сведения о том, как создавать HTTP-запросы к службе и как использовать HTTP-ответ службы.

Program.cs демонстрирует, как можно использовать фабрику каналов WCF для вызова службы и обработки ответов. Заметьте, что это лишь один из способов доступа к WCF-службе. Также возможен доступ к службе с помощью других классов .NET Framework, например HttpWebRequest и WebClient.

Образец состоит из резидентной службы и клиента, которые работают в консольном приложении. Во время выполнения консольного приложения клиент совершает запросы к службе и выводит в окно консоли нужные сведения из ответов.

Использование этого образца

  1. Откройте решение в образце базовой службы Http. При запуске Visual Studio 2012 необходимо запустить от имени администратора для успешного выполнения примера. Для этого щелкните правой кнопкой мыши значок Visual Studio и выберите "Запустить как Администратор istrator" в контекстном меню.

  2. Нажмите клавиши CTRL+SHIFT+B, чтобы создать решение, а затем нажмите клавиши CTRL+F5, чтобы запустить консольное приложение без отладки. Открывается окно консоли с URI запущенной службы и URI HTML-страницы справки для запущенной службы. HTML-страницу справки можно просмотреть в любой момент времени, введя URI этой страницы в браузере. Во время работы образца клиент записывает состояние текущего действия.

  3. Чтобы завершить образец, нажмите любую клавишу.