I'm having some trouble making a POST request with Nodejs. I can make the request with curl, but when I try and to do the same thing in Nodejs, I just get junk data back. I'm calling a Walmart service.
This is what my curl request looks like. This works fine.
curl -d "grant_type=client_credentials&client_id= WALMART_CLIENT_ID&client_secret= WALMART_CLIENT_SECRET" -X POST https://developer.api.walmart.com/api-proxy/service/identity/oauth/v1/token
This is an example of my code in Nodejs. I'm just getting junk data back from Walmart.
const https = require('https');
const qs = require('querystring');
const data = {
grant_type: "client_credentials",
client_id: WALMART_CLIENT_ID,
client_secret: WALMART_CLIENT_SECRET,
};
const options = {
hostname: "developer.api.walmart.com",
path: "/api-proxy/service/identity/oauth/v1/token",
method: "POST"
};
const request = https.request(options, result => {
var chunks = [];
result.on('data', data => {
chunks.push(data);
});
result.on('end', () => {
var body = chunks.join("");
console.log(body);
});
request.on('error', error => {
reject(error);
});
});
request.write(qs.stringify(data));
request.end();
The code works fine if I do a test POST request here. I'm not sure what I'm missing, or what curl is doing to have the Walmart request work.
const options = {
hostname: "reqbin.com",
path: "/echo/post/json",
method: "POST"
};
const data = {};
Except Catalog Pricing And Availability Snapshot and Catalog Store Locator API, all other APIs are GET calls not POST Please verify which catalog API you are consuming and which HTTP method you are using
Request to follow below 2 steps to consumer any catalog API
Regards, Firdos IOSupport