教程 > SOAP > SOAP 基本教程 阅读:155

SOAP 信封(Envelope)

SOAP 信封(Envelope)指示消息的开始和结束,以便接收者知道何时接收到整个消息。 SOAP 信封解决了知道我们何时完成接收消息并准备好处理它的问题。 因此,SOAP 信封基本上是一种包装机制。


注意事项

  • 每个 SOAP 消息都有一个根 Envelope 元素。
  • 信封(Envelope)是 SOAP 消息(Message)的必需部分。
  • 每个 Envelope 元素必须恰好包含一个 Body 元素。
  • 如果一个 Envelope 包含一个 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 标头中的 w 引用是要在 jiyik.com 网站上调用的程序的名称。

POST /w HTTP/1.1
Host: www.jiyik.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 绑定指定服务的位置。

查看笔记

扫码一下
查看教程更方便