Issue
Learn the procedure to create a SOAP Call to an instance using the CURL command in order to troubleshoot possible issues when using the SOAP API.
Resolution
Soap Request Flow
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:inc="http://www.service-now.com/incident">
<soapenv:Header/>
<soapenv:Body>
<inc:get>
<sys_id><enter_sys_ID_of_record_to_retrieve</sys_id>
</inc:get>
</soapenv:Body>
</soapenv:Envelope>
Create the CURL command that you will input in the terminal.
curl --username:password --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: ACTION_YOU_WANT_TO_CALL" --data @FILE_NAME URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT
Example 1: If you are consuming the WSDL from an Instance
curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://<instance_name>.service-now.com/incident.do?SOAP
Example 2: If you are consuming the WSDL from a Node
curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://<noce_name>.service-now.com:<Port_Number>/incident.do?SOAP
Step 3:
Execute the command in Terminal or command prompt.
Troubleshooting:
If ever you see that you are not receiving the expected output, then add the verbose parameter to the curl command and this shall give you more information.
Example of the curl command with verbose:
curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://<instance_name>.service-now.com/incident.do?SOAP -v
Common issues:
1.The file containing the request is not readable
Error:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Unable to parse SOAP document</faultstring>
<detail>Error completing SOAP request</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Solution: Check the content and format of the file that contains the SOAP Request
2. The credential of the specified user is wrong or user is not authorized to access the WSDL
Error:
...
...
< HTTP/1.1 401 Unauthorized
< Set-Cookie: JSESSIONID=5C48D05E518DC37DA6502440F2FD8361; Path=/; HttpOnly;Secure
* Authentication problem. Ignoring this.
...
...
Solution: Check the user credential and if there is any ACL blocking the user from accessing the record
3. The WSDL is incorrect/wrong