SOAP - Envelope 信封
SOAP Envelope 信封指示消息的开始和结束,以便接收者知道何时接收到整个消息。 SOAP 信封解决了了解何时完成消息接收并准备好处理它的问题。 因此,SOAP 信封基本上是一种打包机制。
注意事项
每个 SOAP 消息都有一个根 Envelope 元素。
信封是 SOAP 消息的必需部分。
每个 Envelope 元素必须恰好包含一个 Body 元素。
如果 Envelope 包含 Header 元素,则它只能包含一个 Header 元素,并且它必须作为 Envelope 的第一个子元素出现在 Body 之前。
当 SOAP 版本更改时,信封也会更改。
使用 ENV 命名空间前缀和 Envelope 元素指定 SOAP 信封。
可选的 SOAP 编码也可以使用命名空间名称和可选的 encodingStyle 元素来指定,该元素也可以指向 SOAP 以外的编码样式。
符合 v1.1 的 SOAP 处理器在接收到包含 v1.2 信封命名空间的消息时会生成错误。
如果兼容 v1.2 的 SOAP 处理器收到不包含 v1.2 信封命名空间的消息,则会生成 VersionMismatch 错误。
v1.2 兼容的 SOAP 消息
下面给出的是符合 v1.2 的 SOAP 消息的示例。
<?xml version = "1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding"> ... Message information goes here ... </SOAP-ENV:Envelope>
带有 HTTP POST 的 SOAP
以下示例说明了如何在 HTTP POST 操作中使用 SOAP 消息,该操作将消息发送到服务器。 它显示了信封模式定义和编码规则的模式定义的命名空间。 HTTP 标头中的 OrderEntry 引用是在tutorialspoint.com 网站上调用的程序的名称。
POST /OrderEntry HTTP/1.1 Host: www.tutorialspoint.com Content-Type: application/soap; charset="utf-8" Content-Length: nnnn <?xml version = "1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding"> ... Message information goes here ... </SOAP-ENV:Envelope>
注意 − HTTP 绑定指定服务的位置。