Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 编程 » HTTP Web 服务 » 使用 Web 客户端访问 Web 服务 » Web 客户端应用程序开发 » Web 客户端函数和过程的要求和建议

 

SOAP 请求标头管理

SOAP 请求标头是一个 SOAP 封装中的 XML 片段。当 SOAP 操作及其参数可以被看作远程过程调用 (Remote Procedure Call,RPC) 时,SOAP 请求标头可用于在特定的请求或响应中传输元信息。SOAP 请求标头传输应用程序的元数据,如授权或会话标准。

SOAPHEADER 子句的值必须是有效并符合 SOAP 请求标头条目的 XML 片段。可以指定多个 SOAP 请求标头条目。存储过程或函数将 SOAP 请求标头条目自动注入 SOAP 标头元素中 (SOAP-ENV:Header)。SOAPHEADER 值指定可声明为静态常量或使用参数替代机制进行动态设置的 SOAP 标头。以下是一个 SOAP 请求示例的代码段。它包含两个 XML 标头,分别称为 AuthenticationSession



<?xml version="1.0"?>
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:m="HTTP://localhost:8082">
  <SOAP-ENV:Header>
    <Authentication xmlns="CustomerOrderURN">
      <userName pwd="none" mustUnderstand="1">
        <first>John</first>
        <last>Smith</last>
      </userName>
    </Authentication>
    <Session xmlns="SomeSession">123456789</Session>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <m:SoapOperation>
      <m:intVariable>123</m:intVariable>
      <m:charVariable>data</m:charVariable>
    </m:SoapOperation>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

函数和过程在处理 SOAP 响应标头(由 SOAP 调用返回)上是不同的。使用函数是最灵活也是建议采用的方法,此时将被接收到整个 SOAP 响应封装。响应封装就可以通过 OPENXML 运算符进行处理,从而抽取 SOAP 标头和 SOAP 主体数据。而使用过程时,SOAP 响应标头只能通过用映射到 IN 或 INOUT 变量的替代参数来抽取。SOAP 过程允许的 IN 或 INOUT 参数的最大数量为一个。

Web 服务函数必须分析响应 SOAP 封装以获得标头条目。

 示例
 限制