Привязка SOAP к HTTP
Спецификация SOAP позволяет осуществлять привязку ко многим транспортным протоколам, однако наиболее часто используемой является привязка на протокол HTTP.
Привязка к HTTP обеспечивает согласованность SOAP-сообщений с моделью сообщений HTTP и позволяет HTTP-серверам распознавать, что полученное сообщения является SOAP-сообщением. Следовательно, сервер сможет правильно обработать это сообщение, зная, что это именно SOAP-сообщение, а не просто XML документ или другая информация, которая может быть получена им от клиента.
Примером сообщений веб-сервиса интернет-магазина, передаваемых и получаемых им при обращении клиента к операции получения списка товаров в каталоге, могут служить следующие сообщения:
POST /order/WebShop.asmx HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 455
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetGoods xmlns="http://www.mephi.ru/order">
<catalogId>1</catalogId>
</GetGoods>
</soap12:Body>
</soap12:Envelope>
Это был запрос к веб-сервису. А вот возможный вариант его ответа:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 807
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetGoodsResponse xmlns="http://www.mephi.ru/order">
<GetGoodsResult>
<Good>
<Id>1</Id>
<Name>Celeron 2600</Name>
<Price>150</Price>
<Available>true</Available>
</Good>
<Good>
<Id>2</Id>
<Name>P4 3000</Name>
<Price>190</Price>
<Available>true</Available>
</Good>
</GetGoodsResult>
</GetGoodsResponse>
</soap12:Body>
</soap12:Envelope>
Дата добавления: 2015-02-28; просмотров: 797;