Soap学习篇
1、 什么是soap
Soap就是访问网络服务的协议,基于xml,HTTP+XML=SOAP
2、 Soap构建模块
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
1、必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
2、可选的 Header 元素,包含头部信息
3、必需的 Body 元素,包含所有的调用和响应信息
4、可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
所有以上的元素均被声明于针对 SOAP 封装的默认命名空间中:
http://www.w3.org/2001/12/soap-envelope
以及针对 SOAP 编码和数据类型的默认命名空间:
http://www.w3.org/2001/12/soap-encoding
3、 语法规则
这里是一些重要的语法规则:
- SOAP 消息必须用 XML 来编码
- SOAP 消息必须使用 SOAP Envelope 命名空间
- SOAP 消息必须使用 SOAP Encoding 命名空间
- SOAP 消息不能包含 DTD 引用
- SOAP 消息不能包含 XML 处理指令
4、 例子
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
...
Message information goes here
...
</soap:Envelope>
1、<soap:Envelope……(soap消息的根元素)
2、xmlns:soap=http://www.w3.org/2001/12/soap-envelope(命名空间)
3、soap:encodingStyle=http://www.w3.org/2001/12/soap-encoding(在文档中使用的数据类型,被应用到元素的内容及元素的所有子元素上)
5、 一些属性
1. SOAP Header 元素(必须是 Envelope 元素的第一个子元素)
2. Actor属性(沿着消息路径经过不同的端点,也许打算传送给消息路径上的一个或多个端点,并非所有消息都打算传送到终端)
3. MustUnderstand属性(可用于标识标题项对于要对其进行处理的接收者来说是强制的还是可选的,soap:mustUnderstand="0|1")
4. SOAP Body元素(包含打算传送到消息最终端点的实际 SOAP 消息)
5. SOAP Fault元素(用于指示错误消息,在一条 SOAP 消息中,Fault 元素只能出现一次)
6、 HTTP协议
1. 客户机可向服务器发送 HTTP 请求消息:
POST /item HTTP/1.1
Host: 189.123.345.239
Content-Type: text/plain (定义消息的 MIME 类型)
Content-Length: 200 (请求或响应主体的字节数)
2. 向客户机发送一个 HTTP 响应
200 OK
Content-Type: text/plain
Content-Length: 200