如何在node.js客户端中执行Auth

我想通过身份验证来使用这个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

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...