More details on HttpClientRequest | Community
Skip to main content
guillermoL
Level 4
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
Level 10
July 4, 2017

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

guillermoL
Level 4
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
david--garciaAccepted solution
Level 10
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
Level 4
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?

Amit_Kumar
Level 10
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
Level 3
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
Level 3
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
Level 4
July 5, 2017

Thanks Amit, works like a charm.

Regards

Guillermo

Marcel_Szimonisz
Community Advisor
Community Advisor
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
Level 4
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

david--garcia
Level 10
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.