Tengo algunos problemas para realizar una solicitud POST con Nodejs. Puedo hacer la solicitud con curl, pero cuando intento hacer lo mismo en Nodejs, solo obtengo datos no deseados. Estoy llamando a un servicio de Walmart.
Así es como se ve mi solicitud de curl. Esto funciona bien.
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/tokenEste es un ejemplo de mi código en Nodejs. Solo estoy recuperando datos basura de 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();El código funciona bien si hago una solicitud POST de prueba aquí. No estoy seguro de lo que me estoy perdiendo, o qué está haciendo curl para que la solicitud de Walmart funcione.
const options = { hostname: "reqbin.com", path: "/echo/post/json", method: "POST" }; const data = {};Excepto la instantánea de precios y disponibilidad del catálogo y la API del localizador de tiendas del catálogo, todas las demás API son llamadas GET, no POST. Verifique qué API de catálogo está consumiendo y qué método HTTP está utilizando.
Solicite seguir los 2 pasos a continuación para consumir cualquier API de catálogo
Saludos, Firdos Soporte IOS