HttpClientRequest encoding setting

Avatar

Avatar
Validate 1
Level 1
Samy_doe
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

1 solution
Top badges earned
Validate 1
Affirm 1
View profile

Avatar
Validate 1
Level 1
Samy_doe
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

1 solution
Top badges earned
Validate 1
Affirm 1
View profile
Samy_doe
Level 1

15-06-2020

Hello,

 

We are doing a JS where a HttpClientRequest is used for pushing a request to another 3rd party REST API. In this request we are setting the header Content-type to application/json with charset=utf-8. However, the 3rd party that is receiving the request is not receiving it with UTF-8 encoding but in another encoding (windows-1252). Question: is there another setting other than the HttpClientRequest header that might change the encoding of a request done from ACC to another API?

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Validate 1
Level 1
Samy_doe
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

1 solution
Top badges earned
Validate 1
Affirm 1
View profile

Avatar
Validate 1
Level 1
Samy_doe
Level 1

Likes

0 likes

Total Posts

3 posts

Correct reply

1 solution
Top badges earned
Validate 1
Affirm 1
View profile
Samy_doe
Level 1

16-06-2020

The way you can use HttpClientRequest is in a JS activity in a workflow and it looks like:

var request = new HttpClientRequest(url);
request.connect();
request.method = "POST";
request.body = data;
request.header["Content-Type"] = "application/json;charset=UTF-8";
request.execute();

In this request the connect() and execute() methods have some optional parameters for when the endpoint has a proxy or if you want to have a call async. Documentation here: https://docs.adobe.com/content/help/en/campaign-classic/technicalresources/api/c-HttpClientRequest.h... 

However, it seems like the way the connect and execute methods are setup up is interfering with the Content-Type header meaning that in some configuration the Content-Type set up like in the above code is ignored.
This seems to be related to the proxy setting on the ACC environment we are working in. We managed to find a working code by not setting up any optional parameters but only using connect() and execute() as they are.

Answers (1)

Answers (1)

Avatar

Avatar
Establish
MVP
wodnicki
MVP

Likes

982 likes

Total Posts

1,097 posts

Correct reply

517 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile

Avatar
Establish
MVP
wodnicki
MVP

Likes

982 likes

Total Posts

1,097 posts

Correct reply

517 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile
wodnicki
MVP

15-06-2020

Hi,

 

I've never been able to get HTTPClientRequest to set content-type header.

What I've done to solve is make a drop-in replacement for HTTPClientRequest class, wrapping execCommand('curl').

HTTPClientRequest is libcurl anyway.

 

Thanks,

-Jon