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 操作とそのパラメータはリモートプロシージャコール (RPC) であると考えることができますが、SOAP 要求ヘッダを使用して、特定の要求や応答内のメタ情報を転送できます。SOAP 要求ヘッダによって、認証情報やセッション基準などのアプリケーションのメタデータが転送されます。

SOAPHEADER 句は、SOAP 要求ヘッダエントリに準拠する有効な XML フラグメントである必要があります。複数の SOAP 要求ヘッダエントリを指定できます。ストアドプロシージャまたはファンクションによって、SOAP ヘッダ要素 (SOAP-ENV:Header) 内に SOAP 要求ヘッダエントリが自動的に注入されます。SOAPHEADER 値では、静的定数として宣言したり、代入パラメータメカニズムを使用して動的に設定したりできる SOAP ヘッダが指定されます。次に、サンプルの SOAP 要求の一部を示します。これにはそれぞれ AuthenticationSession という 2 つの XML ヘッダが含まれています。



<?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 本文のデータを抽出できます。プロシージャを使用すると、IN または INOUT 変数にマッピングする代入パラメータを使用する場合にのみ SOAP 応答ヘッダを抽出できます。SOAP プロシージャで許容される IN または INOUT パラメータは、1 つだけです。

Web サービス関数は、応答 SOAP エンベロープを解析して、ヘッダエントリを取得する必要があります。

 例
 制限事項