肥皂 - 信封
SOAP 信封指示消息的开始和结束,以便接收者知道何时接收到整个消息。SOAP 信封解决了了解何时完成消息接收并准备好处理它的问题。因此,SOAP 信封基本上是一种打包机制。
注意事项
每个 SOAP 消息都有一个根 Envelope 元素。
信封是 SOAP 消息的必需部分。
每个 Envelope 元素必须恰好包含一个 Body 元素。
如果 Envelope 包含 Header 元素,则它只能包含一个 Header 元素,并且它必须作为 Envelope 的第一个子元素出现在 Body 之前。
当 SOAP 版本更改时,信封也会更改。
SOAP 信封是使用ENV命名空间前缀和 Envelope 元素指定的。
可选的 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 绑定指定服务的位置。