文章
· 七月 25 阅读大约需 2 分钟

第四章 覆盖 HTTP SOAP 操作和请求消息名称

第四章 覆盖 HTTP SOAP 操作和请求消息名称

覆盖 HTTP SOAP 操作和请求消息名称

当通过 HTTP 调用 Web 方法时,HTTP 标头必须包含 SOAP 操作,该操作是指示 SOAP HTTP 请求意图的 URI。对于 SOAP 1.1SOAP 操作作为 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

其中 NAMESPACEWeb 服务的 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 属性的值。具体来说:

  • 如果 ELEMENTQUALIFIED1,则 elementFormDefault“qualified”。
  • 如果 ELEMENTQUALIFIED0,则 elementFormDefault 为“unqualified”。

此参数的默认值取决于 SoapBodyUse 类关键字的值。请参阅类定义参考。通常,SoapBodyUse 是“文字”,这意味着 ELEMENTQUALIFIED1

控制消息部分是否使用元素或类型

Web 服务有一个参数 (XMLELEMENT),用于控制 SOAP 消息的消息部分的精确格式。具体来说:

  • 如果 XMLELEMENT1,则 <part> 元素具有名为 nameelement 的属性。在本例中,WSDL 包含一个示例 <message> 元素,如下所示:
<message name="GetPersonSoapOut">
  <part name="GetPersonResult" element="s0:Person" />
</message>
  • 如果 XMLELEMENT0,则 <part> 元素具有名为 nametype 的属性。在本例中,WSDL 包含一个示例 <message> 元素,如下所示:
<message name="GetPersonSoapOut">
  <part name="GetPersonResult" type="s0:Person" />
</message>

此参数的默认值取决于 SoapBodyUse 类关键字的值。请参阅类定义参考。通常,SoapBodyUse 是“literal”,这意味着 XMLELEMENT1

讨论 (0)1
登录或注册以继续