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)
}
}
);
我想在req变量中发送原始请求体。它正在邮递员,但在节点js我无法发送原始json作为发布请求的请求主体。
答案 0 :(得分:8)
您正在尝试发送JSON(您的req
变量),但您正在将其解析为字符串(JSON.stringify(req)
)。由于您的路由期望JSON,它可能会失败并返回错误。请尝试以下请求:
request.post({
url: 'posturl',
body: req,
json: true
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
});
如果您要发送JSON,则可以添加选项json: true
,而不是设置标题。
答案 1 :(得分:2)
将Content-Type
更改为application/json
,因为您的身体是JSON格式。
答案 2 :(得分:0)
添加'内容长度'在正文中添加的字符串的标题中,将解决此问题。 它对我有用。
标题:{" Cache-Control":" no-cache"," Content-Type":" application / json; charset = UTF -8",'内容长度':req.length }