Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

More details on HttpClientRequest

guillermoL
Level 4
Level 4

Hi,

I am trying to make a remote call with HttpClientRequest to reach a Web Service. I can see that the http request is made (both POST or GET seems to work ok ), but I am finding some troubles to:

- Get the content of the response itself that is returned from the server. I can not even find the response headers.

- Also, I don't know how to deal with http Basic authentication. Should I set some particular headers?

Do you know of any reference or some help that I can use to !work out both topics below?

Thanks very much in advance

Guillermo

1 Accepted Solution
David__Garcia
Correct answer by
Level 8
Level 8

Try the following

var http = new HttpClientRequest("yourhost.com")

http.execute()

var response = http.response

for(var i in response.header)

  logInfo("header[" + i + "] => " + response.header[i])

Should give you something like

View solution in original post

9 Replies
David__Garcia
Level 8
Level 8

Play around with this in a workflow, you'll get the idea.

guillermoL
Level 4
Level 4

Thanks David,

Actually this is what I was doing to make the request I meant before, but in the response I can not find anything related to the reply from the server.

David__Garcia
Correct answer by
Level 8
Level 8

Try the following

var http = new HttpClientRequest("yourhost.com")

http.execute()

var response = http.response

for(var i in response.header)

  logInfo("header[" + i + "] => " + response.header[i])

Should give you something like

View solution in original post

guillermoL
Level 4
Level 4

Thanks David. I was trying to see the contents of the object returned with

JSON.stringify(response)

and did not get any output. Now with your help I am receiving what I was expecting.

Is anyone able to help with the http Basic authentication headers?

Amit_Kumar
Community Advisor
Community Advisor

You should use the following:

var API = 'http://yourwebserviceendpoint.com'

var http = new  HttpClientRequest(API);

http.method = "GET";

http.header["Content-Type"] = "application/json";

http.header["Accept"] = "application/json";

http.header["Authorization"] = "Basic Z3XNlbmRleHRlc3QxQGdtYWlsLmNvbTpsb2dpbjEyMzQ="; // replace with your authorization code

http.execute();

var response = http.response;

Regards,

Amit

guillermoL
Level 4
Level 4

Thanks Amit, works like a charm.

Regards

Guillermo

MarcelSzimonisz
Community Advisor
Community Advisor

Hello fellow campaigners,

can we send http request without authorizing the domains in the config?

I need to ping urls from JS activity

guillermoL
Level 4
Level 4

Hi Marcel,

I don't think you need to add any authorization as far as I remember but I'm not 100% sure to be honest.

Regards

Guillermo

David__Garcia
Level 8
Level 8

Marcel, you must white list outbound url that you will be making the request to.

OCT -31- 2017 Campaign v6/v7 - 17.4 Build 8863

Technical evolutions

URL permissions

We have limited the default list of URLs that can be called by JavaScript codes (workflows, etc.). To allow a new URL, the administrator needs to reference it in the serverConf.xml file.

<urlPermission action="blocking" debugTrace="true"> <url dnsSuffix="abc.company1.com" urlRegEx="https://.*" /> <url dnsSuffix="def.partnerA_company1.com" urlRegEx="https://.*" /> <url dnsSuffix="xyz.partnerB_company1.com" urlRegEx="https://.*" /> </urlPermission> 

Refer to the Security configuration checklist for more information.