我正在尝试使用请求或http / https(或其他任何其他内容,如果不可能使用那些2)在node.js中执行以下cUrl请求。
curl -k -3 -X POST https://somedomain.com/rest/ \
-H "customeHeader: customeHeader" \ // customer header
-d '{ "email" : "foo@bar.com", "password" : "yourpassword" }' // data to post.
这是我到目前为止所得到的:
var options = {
"hostname": "https://somedomain.com/rest/",
"method": 'POST',
"headers" : {
"customeHeader" : "customeHeader"
},
"secureProtocol" : "SSLv3_method",
"rejectUnauthorized" : false
};
var req = https.request(options, function(res) {
res.on('data', function(d) {
console.log(d);
//process.stdout.write(d);
});
});
req.end();
req.on('error', function(e) {
console.error(e);
});
}
我想我只是错过了帖子字段(-d)或者上面是完全错误的
答案 0 :(得分:3)
您需要使用req.write编写POST主体:
req.write(JSON.stringify(someObj));
同时将Content-Type
标题设置为application/json
。
这是一个完整的例子:
var request = require('https').request,
parseUrl = require('url').parse;
var options = parseUrl('https://somedomain.com/rest');
options.method = 'POST';
options.headers = {
'Content-Type': 'application/json'
};
var req = request(options, function (res) {
res.on('data', function (d) {
console.log(d.toString());
});
});
req.write(JSON.stringify({a: 1, b: 2}));
req.end();