Ask Your Question
1

How to send a SOAP request using HttpClient?

asked 2019-08-28 08:30:59 -0600

Chandan gravatar image

I am trying to use the Workday Soap service and trying to call the service using the Http Client. But unable to understand how to send the Soap Request to the service to get the response. Can someone please help in passing the soap request to the service ?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2019-08-28 09:31:39 -0600

metadaddy gravatar image

There's no built-in support for SOAP but you can build an XML payload with an Expression Evaluator then send it as Text data format in the HTTP Client destination. Some notes:

Use Expression Evaluator to populate a field, say, XML, with the XML you need, using Expression Language to extract the relevant fields from the data. For example, you could set /xml to

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Header>
    <ns1:RequestHeader
         soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
         soapenv:mustUnderstand="0"
         xmlns:ns1="https://www.google.com/apis/ads/publisher/v201908">
      <ns1:networkCode>${record:value('/networkCode')}</ns1:networkCode>
      <ns1:applicationName>${record:value('/applicationName')}</ns1:applicationName>
    </ns1:RequestHeader>
  </soapenv:Header>
  <soapenv:Body>
    <getAdUnitsByStatement xmlns="https://www.google.com/apis/ads/publisher/v201908">
      <filterStatement>
        <query>WHERE parentId IS NULL LIMIT 500</query>
      </filterStatement>
    </getAdUnitsByStatement>
  </soapenv:Body>
</soapenv:Envelope>

In HTTP Client Destination, add a header Content-Type with value application/xml, set the data format to Text, and set the text field path to /xml.

edit flag offensive delete link more

Comments

Hi Pat, Thanks for looking into this. I have used a directory service and taken all the payload from a text file and sent it over to Http client but some how I am getting the following error. Not sure what was configured wrong. Can you please let me know on this ?

Chandan gravatar imageChandan ( 2019-09-04 10:28:15 -0600 )edit

giving the total error here : HTTP_01 - Error fetching resource. Status: 404 Reason: Not Found org.glassfish.jersey.message.internal.EntityInputStream@771d8241

Chandan gravatar imageChandan ( 2019-09-04 10:28:51 -0600 )edit

I am using HttpClient as a processor and tried following above steps. It is a bit unclear as to what exactly to mention in the "Expression Evaluator" ? Can you provide an example? And where do we need to place the WSDL ?

nick gravatar imagenick ( 2019-09-05 13:45:49 -0600 )edit

I tried to paste the WSDL as a payload for POST request. I am getting same error as Chandan but with 500:Internal Server Error and same glassfish stack trace. Could you please elaborate this step?

nick gravatar imagenick ( 2019-09-05 13:46:50 -0600 )edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2019-08-28 08:30:59 -0600

Seen: 624 times

Last updated: Aug 28

Related questions