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

SQL Anywhere 12.0.1 » 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 エンベロープを解析して、ヘッダーエントリを取得する必要があります。

 例
 制限事項