function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
MerrillMerrill 

Summer 08, soap and "SOAPAction HTTP header missing"

I have an app that has been working for quite some time. Since the upgrade to Summer08 everything is broken, I am getting: SOAPAction HTTP header missing It looks like this:

Code:
 <?xml version="1.0" encoding="utf-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:enterprise.soap.sforce.com">
      <soapenv:Header>
        <urn:SessionHeader>
          <urn:sessionId>SESSION_id_GOES_HERE</urn:sessionId>
        </urn:SessionHeader>
      </soapenv:Header>
      <soapenv:Body>
        <urn:getUserInfo />
      </soapenv:Body>
    </soapenv:Envelope>



 Any help would be greatly appreciated.

My full response is:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>SOAPAction HTTP header missing</faultstring>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

 It returns a status code of: 500 Internal Server Error which is strange to me.

I am posting to: https://na1.salesforce.com/services/Soap/c/10.0 which has worked for months.

Thanks,
Chris


cheenathcheenath
Are you using Ajax toolkit?

If you are constructing the soap message by hand, you have
to set the SOAPAction HTTP header to empty string in the XHR.



MerrillMerrill
@cheenath:

I am using actually using coldfusion and it has worked very well. My coldfusion code below:

Code:
<cfhttp url="https://na1.salesforce.com/services/Soap/c/10.0" method="POST" timeout="7200">
<cfhttpparam type="HEADER" name="Content-Type" value="text/xml; charset=utf-8">
<cfhttpparam type="HEADER" name="Accept" value="application/soap+xml, application/dime, multipart/related, text/*">
<cfhttpparam type="HEADER" name="User-Agent" value="Axis/1.1">
<cfhttpparam type="HEADER" name="Host" value="https://na1.salesforce.com/">
<cfhttpparam type="HEADER" name="Cache-Control" value="no-cache">
<cfhttpparam type="HEADER" name="Pragma" value="no-cache">
<cfhttpparam type="HEADER" name="Version" value="HTTP/1.0">
<cfhttpparam type="HEADER" name="SOAPAction" value="">
<cfhttpparam type="HEADER" name="Content-Length" value="#len(trim(salesforceSoap))#">
<cfhttpparam type="BODY" value="#trim(salesforceSoap)#">
</cfhttp>

Note: Content-Length and Body post the body and length.

The Header SOAPAction is blank.

It is very puzzling.

cheenathcheenath
Try this:

 <cfhttpparam type="HEADER" name="SOAPAction" value="\"\"">


MerrillMerrill
Cheentah:

I tried that and get : Internal Server Error

What is the equivelant in a different language? PHP or Java?
cheenathcheenath
In Java it will be:

 connection.setRequestProperty("SOAPAction", "\"\"");

On the wire it should write:

SOAPAction: ""





MerrillMerrill
so essentially forcing a blank string?
Jill PlotkeJill Plotke
Was this ever figured out?  I am now having the exact same issue.  I can't figure out how to get ColdFusion to create an empty string without getting the following error: SOAPAction HTTP header missing