Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Связь HTTP GET и HTTP POST

Связь HTTP GET и HTTP POST

Хотя GET и POST кажутся привычными конструкциями, этот метод пересылки недостаточно гибок для обслуживания таких сложных элементов, как структуры и классы. При использовании SET и POST вы можете взаимодействовать с Web-методами, используя только типы, указанные в табл. 25.5.

Таблица 25.5. Типы данных, поддерживаемые методами GET и POST

Типы данных Описание
Перечни GET и POST поддерживают передачу типов System.Enum.NET, поскольку эти типы представляются в виде статических строковых констант
Простые массивы Вы можете использовать массивы любых примитивных типов
Строки GET и POST осуществляют передачу любых числовых данных в виде строковых маркеров. Строка здесь на самом деле обозначает строковое представление среды CLR для таких примитивов, как Int16, Int32, Int64, Boolean, Single, Double, Decimal и т.д.

По умолчанию HTTP-связь GET и POST не разрешена для удаленного вызова Web-сервисов XML. Однако HTTP-связь POST активизирована для вызова машиной локальных Web-сервисов (на самом деле именно этот режим использует автоматически генерируемая страница тестирования). Эти установки указываются в файле machine.config с помощью элемента ‹protocols›. Вот как выглядит соответствующий фрагмент

‹!-- В файле machine. config --›
‹webServices
 ‹protocols›
  ‹add name="HttpSoap1.2" /›
  ‹add name="HttpSoap" /›
  ‹add name="Documentation" /›
  ‹!-- HTTP GET/POST отключены! --›
  ‹!-- ‹add name="HttpPost''/› --›
  ‹!-- ‹add name="HttpGet"/› --›
  ‹!-- Используется страницей тестирования Web-сервиса --›
  ‹add name="HttpPostLocalhost" /›
 ‹/protocols›
‹/webServiсes›

Чтобы снова разрешить использование HTTP-методов GET или POST для Web-сервиса, добавьте имена HttpPost и HttpGet в соответствующий локальный файл Web.config.

‹configuration›
 ‹system.web›
  ‹webServices›
   ‹protocols›
    ‹add name="HttpPost"/›
    ‹add name="HttpGet"/›
   ‹/protocols›
  ‹/webServices›
 ‹/system.web›
‹/configuration›

Снова напоминаем, что при использовании стандартных HTTP-методов GET и POST у вас нет возможности строить Web-методы, допускающие использование составных типов (например, DataSet ADO.NET или пользовательский тип структуры) в качестве параметров или возвращаемых значений. Для простых Web-сервисов это ограничение может быть вполне приемлемым. Однако при использовании связи SOAP вы можете строить гораздо более совершенные Web-сервисы XML.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.186. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз