开发学院

您的位置:首页>教程>正文

教程正文

​SOAP Envelope元素

SOAP Envelope(信封)元素

SOAP的Envelope元素表示消息的开始和结束,以便接收方确认收到整个消息。


注意事项

以下是关于Envelope元素的一些要点:

每个SOAP消息都有Envelope元素。

Envelope是SOAP消息的一个强制部分。

每个Envelope元素必须包含一个Body元素。

如果Envelope包含一个头元素,它必须包含大于一个元素,并且它必须作为Envelope的第一个子节点出现,在Body之前。

当SOAP版本更改时,Envelope也随之更改。

SOAP Envelope是使用env名称空间前缀和信封元素指定的。

也可以使用可选的encodingStyle元素指定名称空间和SOAP编码,这也可以指向除SOAP之外的编码样式。

兼容v1.1的SOAP处理器在接收包含v1.2信封命名空间的消息时会生成错误。

兼容v1.2的SOAP处理器收到一条不包含v1.2信封命名空间的消息,则会生成VersionMismatch错误。


兼容1.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引用是在kaifaxueyuan.com网站上调用的程序名称。

POST /OrderEntry HTTP/1.1

Host: www.kaifaxueyuan.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>