GetSOAPResponseHeader

Description

Returns a SOAP response header. Call this function from within code that is invoking a web service after making a web service request.

Returns

A SOAP response header.

Category

XML functions

History

ColdFusion MX 7: Added this function.

Function syntax

GetSOAPResponseHeader(webservice, namespace, name [, asXML])

Parameters

Parameter

Description

webservice

A webservice object as returned from the cfobject tag or the CreateObject function.

namespace

A String that is the namespace for the header.

name

A String that is the name of the SOAP header.

asXML

If True, the header is returned as a CFML XML object. If False (default), the header is returned as a Java object.

Usage

If you specify false for the asXML parameter, ColdFusion first attempts to retrieve the header using the data type specified in the header’s xsi:type attribute. If the xsi:type attribute is not available, ColdFusion attempts to retrieve the header as a string. If you specify true for the asXML parameter, ColdFusion retrieves the header as raw XML.

Used within CFML code by a consumer of a web service after it calls the web service with cfinvoke.

Example

There are two parts to this example. The first part is the web service CFC that this function (as well as the other ColdFusion SOAP functions) uses to demonstrate its interaction with a web service. To implement the web service for this function, see the example for either the AddSOAPResponseHeader function or the GetSOAPRequestHeader function.

Execute the following example to see how the GetSOAPResponseHeader function operates:

<!--- Note that you might need to modify the URL in the CreateObject function 
to match your server and the location of the headerservice.cfc file if it is 
different than shown here. Likewise for the cfinvoke tag at the end ---> 
 
<h3>GetSOAPResponseHeader Example</h3> 
<cfscript> 
    // Create the web service object 
    ws = CreateObject("webservice", "http://localhost/soapheaders/headerservice.cfc?WSDL"); 
     
    // Set the username header as a string 
    addSOAPRequestHeader(ws, "http://mynamespace/", "username", "tom", false); 
     
    // Set the password header as a CFML XML object 
    doc = XmlNew(); 
    doc.password = XmlElemNew(doc, "http://mynamespace/", "password"); 
    doc.password.XmlText = "My Voice is my Password"; 
    doc.password.XmlAttributes["xsi:type"] = "xsd:string"; 
    addSOAPRequestHeader(ws, "ignoredNameSpace", "ignoredName", doc); 
 
    // Invoke the web service operation 
    ret = ws.echo_me("argument"); 
     
    // Get the first header as an object (string) and as XML 
    header = getSOAPResponseHeader(ws, "http://www.tomj.org/myns", "returnheader"); 
    XMLheader = getSOAPResponseHeader(ws, "http://www.tomj.org/myns", "returnheader", true); 
 
    // Get the second header as an object (string) and as XML 
    header2 =getSOAPResponseHeader(ws, "http://www.tomj.org/myns", "returnheader2"); 
    XMLheader2 = getSOAPResponseHeader(ws, "http://www.tomj.org/myns", "returnheader2", true); 
</cfscript> 
<hr> 
<cfoutput> 
Soap Header value: #HTMLCodeFormat(header)#<br> 
Soap Header XML value: #HTMLCodeFormat(XMLheader)#<br> 
Soap Header 2 value: #HTMLCodeFormat(header2)#<br> 
Soap Header 2 XML value: #HTMLCodeFormat(XMLheader2)#<br> 
Return value: #HTMLCodeFormat(ret)#<br> 
</cfoutput> 
<hr> 
 
<cfinvoke component="soapheaders.headerservice" method="echo_me" returnvariable="ret" in_here="hi"> 
</cfinvoke> 
<cfoutput>Cfinvoke returned: #ret#</cfoutput>