第四章 覆盖 HTTP SOAP 操作和请求消息名称
覆盖 HTTP SOAP
操作和请求消息名称
当通过 HTTP
调用 Web
方法时,HTTP
标头必须包含 SOAP
操作,该操作是指示 SOAP HTTP
请求意图的 URI
。对于 SOAP 1.1
,SOAP
操作作为 SOAPAction HTTP
标头包含在内。对于 SOAP 1.2
,它包含在 Content-Type HTTP
标头中。
SOAP
操作指示 SOAP HTTP
请求的意图。该值是一个标识意图的 URI
;它通常用于路由入站 SOAP
消息。例如,防火墙可以使用此标头适当地过滤 HTTP
中的 SOAP
请求消息。
对于 Web
服务中的 Web
方法,SOAPAction HTTP
标头默认具有以下形式(对于 SOAP 1.1
):
SOAPAction: NAMESPACE/Package.Class.Method
其中 NAMESPACE
是 Web
服务的 NAMESPACE
参数的值,Package.Class.Method
是用作 Web
方法的方法的名称。例如:
SOAPAction: http://www.myapp.org/GSOAP.WebService.GetPerson
要覆盖此设置,请在 Web
方法的定义中为 SoapAction
方法关键字指定一个值。指定一个带引号的字符串,表示 SOAP
请求的意图。在典型情况下,Web
服务中的每个 Web
方法都会为 SoapAction
指定一个唯一值(如果有)。
如果 SoapAction
在该 Web
服务中不唯一,则每个方法都必须具有唯一的 SoapRequestMessage
方法关键字值。此关键字指定请求消息的 SOAP
主体中的顶部元素的名称。请注意,SoapRequestMessage
仅对包装的文档/文字消息有效。
指定元素是否符合条件
ELEMENTQUALIFIED
参数( Web 服务的)控制 WSDL
架构中 elementFormDefault
属性的值。具体来说:
- 如果
ELEMENTQUALIFIED
为1
,则elementFormDefault
为“qualified”。
- 如果
ELEMENTQUALIFIED
为0
,则elementFormDefault
为“unqualified
”。
此参数的默认值取决于 SoapBodyUse
类关键字的值。请参阅类定义参考。通常,SoapBodyUse
是“文字”,这意味着 ELEMENTQUALIFIED
为 1
。
控制消息部分是否使用元素或类型
Web
服务有一个参数 (XMLELEMENT
),用于控制 SOAP
消息的消息部分的精确格式。具体来说:
- 如果
XMLELEMENT
为1
,则<part>
元素具有名为name
和element
的属性。在本例中,WSDL
包含一个示例<message>
元素,如下所示:
<message name="GetPersonSoapOut">
<part name="GetPersonResult" element="s0:Person" />
</message>
- 如果
XMLELEMENT
为0
,则<part>
元素具有名为name
和type
的属性。在本例中,WSDL
包含一个示例<message>
元素,如下所示:
<message name="GetPersonSoapOut">
<part name="GetPersonResult" type="s0:Person" />
</message>
此参数的默认值取决于 SoapBodyUse
类关键字的值。请参阅类定义参考。通常,SoapBodyUse
是“literal
”,这意味着 XMLELEMENT
为 1
。
网友评论