More details on HttpClientRequest | Community
Skip to main content
guillermoL
New Participant
July 4, 2017
Solved

More details on HttpClientRequest

  • July 4, 2017
  • 9 replies
  • 10776 views

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

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by david--garcia

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

9 replies

david--garcia
New Participant
May 22, 2019

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.

guillermoL
New Participant
May 22, 2019

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

Marcel_Szimonisz
New Participant
May 22, 2019

Hello fellow campaigners,

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

I need to ping urls from JS activity

guillermoL
New Participant
July 5, 2017

Thanks Amit, works like a charm.

Regards

Guillermo

Amit_Kumar
New Participant
July 5, 2017

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

ravitejagundu
New Participant
March 4, 2022

Hi Amit,

 

I am trying to get the access token using the POST method using in the javascript activity with the reference of the above code. I am passing the Client_id, Client_secret, Grant_Type, and Scope in the header only like above. However getting an error like "invalid_client", "unsupported_grant_acess".

 

Can you please help me with the code for POST method to get the access token with client_id, client_secret, Grant_Type, and Scope to be passed in the body? 

 

Thanks,

Raviteja Gundu.

ravitejagundu
New Participant
September 5, 2022

Hi Team,

 

The issue is resolved now. We need to send the grant type, client_id, client_secret in body as a query string. We were able to get the access token now.

http.body="grant_type=<value>&client_id=<value>&client_secret=<value>&scope=<value>";

 

Hope it will help someone.

 

Thanks,

Raviteja Gundu.

guillermoL
New Participant
July 5, 2017

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?

david--garcia
david--garciaAccepted solution
New Participant
July 5, 2017

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

guillermoL
New Participant
July 4, 2017

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
New Participant
July 4, 2017

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