我想通过身份验证来使用这个rest api.我正在尝试包含标题但没有得到任何回复.它抛出的输出通常在没有认证时抛出.谁能建议我一些解决方案.下面是我的代码
var http = require('http'); var optionsget = { host : 'localhost',// here only the domain name port : 1234,path:'/api/rest/xyz',headers: { 'Authorization': 'Basic ' + new Buffer('abc'+ ':' + '1234').toString('base64') },method : 'GET' // do GET }; console.info('Options prepared:'); console.info(optionsget); console.info('Do the GET call'); var reqGet = http.request(optionsget,function(res) { console.log("statusCode: ",res.statusCode); res.on('data',function(d) { console.info('GET result:\n'); process.stdout.write(d); console.info('\n\nCall completed'); }); }); reqGet.end(); reqGet.on('error',function(e) { console.error(e); });
解决方法
request模块将让您的生活更轻松.它现在包含一个
Basic Auth作为选项,所以你自己没有构建标题.
var request = require('request') var username = 'fooUsername' var password = 'fooPassword' var options = { url: 'http://localhost:1234/api/res/xyz',auth: { user: username,password: password } } request(options,function (err,res,body) { if (err) { console.dir(err) return } console.dir('headers',res.headers) console.dir('status code',res.statusCode) console.dir(body) })
要安装请求,请执行npm install -S request