我想知道请求模块的options对象的body属性和json属性之间的区别是什么。例如,这两个请求实例之间有什么区别:
var obj = {
"type": "SCHEDULED_CALLBACK",
"appointmentTime": "2014-10-06T15:45:00Z",
"queue": queueName
};
第一个:
request.post({
method: 'POST',
uri: url,
headers: {'content-type': 'application/json'},
json: obj
}
, function (err, response, body) {
cb(err, response, body);
});
和这一个:
request.post({
method: 'POST',
qs: {queue: queueName}, //query string params go here
uri: url,
body: JSON.stringify(obj),
}
, function (err, response, body) {
cb(err, response, body);
});
例如,当我收到一个帖子请求时,JSON数据总是在请求的正文中。那么在使用请求模块时,为选项的body属性或选项的json属性赋值的区别是什么?
答案 0 :(得分:5)
唯一的区别是body
不假设内容类型是JSON,而json
则认为,并相应地设置Content-Type
标头。
在您的示例中,body: JSON.stringify(obj)
和json: obj
之间没有区别,除了缺少自动设置标题。