GETSOAPREQUESTHEADER |
説明 SOAP リクエストヘッダを取得します。リクエストを SOAP サービスとして処理する CFC Web サービス関数内からのみ呼び出します。
戻り値 SOAP リクエストヘッダ
カテゴリ XML 関数
ヒストリ ColdFusion MX 7: この関数が追加されました。
関数のシンタックス
    GetSOAPRequestHeader(namespace, name [, asXML])
関連項目 AddSOAPRequestHeader、AddSOAPResponseHeader、GetSOAPRequest、GetSOAPResponse、GetSOAPResponseHeader、IsSOAPRequest、『ColdFusion MX 開発ガイド』の第36章の「Web サービスの使用」 の「基本的な Web サービスの概念」
パラメータ
使用方法 asXML パラメータに対して false を指定した場合、ColdFusion は、ヘッダの xsi:type 属性で指定されたデータタイプを使用してヘッダを最初に取り出そうとします。xsi:type 属性を使用できない場合、ColdFusion はヘッダを文字列として取り出そうとします。asXML パラメータに対して true を指定した場合、ColdFusion はヘッダを未処理の XML として取り出します。 この関数は、Web サービスリクエストではないコンテキストで呼び出された場合、エラーを返します。IsSOAPRequest 関数を使用して、CFC が Web サービスとして稼動しているかどうかを判別します。
例 この例では、GetSOAPRequestHeader 関数のオペレーションを示す CFC Web サービスを作成すると共に、他の ColdFusion SOAP 関数のオペレーションを示す Web サービスも提供します。 次のコードを、Web ルート下の "soapheaders" というフォルダに "headerservice.cfc" として保存します。この Web サービスを起動する例を実行することにより、そのオペレーション、特に GetSOAPRequestHeader 関数のオペレーションをテストします。たとえば、AddSOAPRequestHeader の例を参照してください。
    <h3>GetSOAPRequestHeader の例</h3>
    <cfcomponent displayName="tester" hint="Test for SOAP headers">

    <cffunction name="echo_me"
             access="remote"
             output="false"
             returntype="string"
             displayname="Echo Test" hint="Header test">

      <cfargument name="in_here" required="true" type="string">

    <cfset isSOAP = isSOAPRequest()>
    <cfif isSOAP>

       <!--- 先頭のヘッダを文字列および XML として取得 --->
       <cfset username = getSOAPRequestHeader("http://mynamespace/", "username")>
       <cfset return = "サービスで認識されるユーザー名 : " & username>
       <cfset xmlusername = getSOAPRequestHeader("http://mynamespace/", "username", "TRUE")>
       <cfset return = return & "<br> as XML:" & xmlusername>

       <!--- 2 番めのヘッダを文字列および XML として取得 --->
       <cfset password = getSOAPRequestHeader("http://mynamespace/", "password")>
       <cfset return = return & "サービスで認識されるパスワード : " & password>
       <cfset xmlpassword = getSOAPRequestHeader("http://mynamespace/", "password", "TRUE")>
       <cfset return = return & "<br> as XML:" & xmlpassword>

       <!--- ヘッダを文字列として追加 --->
        <cfset addSOAPResponseHeader("http://www.tomj.org/myns", "returnheader", "AUTHORIZED
    VALUE", false)>

       <!--- CFML XML 値を使用する 2 番めのヘッダを追加 --->
       <cfset doc = XmlNew()>
       <cfset x = XmlElemNew(doc, "http://www.tomj.org/myns", "returnheader2")>
       <cfset x.XmlText = "hey man, here I am in XML">
       <cfset  x.XmlAttributes["xsi:type"] = "xsd:string">
       <cfset tmp = addSOAPResponseHeader("ignoredNameSpace", "ignoredName", x)>

    <cfelse>
       <!--- ヘッダを文字列として追加 - 必ずエラーを生成!
        <cfset addSOAPResponseHeader("http://www.tomj.org/myns", "returnheader", "AUTHORIZED
    VALUE", false)>
       --->
        <cfset return = "Web サービスとして呼び出されない">
    </cfif>

    <cfreturn return>

    </cffunction>

    </cfcomponent>

NAMESPACE |
ヘッダのネーム空間である文字列です。

NAME |
ヘッダの名前である文字列です。

ASXML |
true の場合、ヘッダは CFML XML オブジェクトとして返されます。false (デフォルト) の場合、 ヘッダは Java オブジェクトとして返されます。