var req ={
"request": {
"header": {
"username": "name",
"password": "password"
},
"body": {
"shape":"round"
}
}
};
request.post(
{url:'posturl',
body: JSON.stringify(req),
headers: { "content-type": "application/x-www-form-urlencoded"}
},
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
}
);
Je veux envoyer le corps de la requête brute dans la variable req. Il travaille sur postman, mais dans le nœud js, je ne parviens pas à envoyer le JSON brut en tant que corps de requête pour post-requête.
Vous essayez d'envoyer JSON (votre variable req
) mais vous l'analysez comme une chaîne (JSON.stringify(req)
). Comme votre itinéraire attend JSON, il échouera probablement et renverra une erreur. Essayez la demande ci-dessous:
request.post({
url: 'posturl',
body: req,
json: true
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
});
Au lieu de définir vos en-têtes, vous pouvez simplement ajouter l'option json: true
si vous envoyez du JSON.
Changez le Content-Type
en application/json
, car votre corps est au format JSON.
Ajouter le 'Content-Length' dans l'en-tête de la chaîne ajoutée dans le corps résoudra ce problème. Cela a fonctionné pour moi.
en-têtes: {"Cache-Control": "no-cache", "Content-Type": "application/json; charset = UTF-8", 'Content-Length': req.length }