11

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

2 回答 2

47

请求模块将使您的生活更轻松。它现在包括一个基本身份验证作为选项,因此您不必自己构建标题。

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

于 2013-04-13T14:13:46.997 回答
0

在您的评论中,您问:“我在命令提示符中获得的 JSOn 有什么方法可以通过 javascript 或 Jquery 或任何方式进入 UI。”

嘿,把尸体还给你的客户:

exports.requestExample = function(req,res){
  request(options, function (err, resp, body) {
    if (err) {
      console.dir(err)
      return;
    }
    // parse method is optional
    return res.send(200, JSON.parse(body));
  });
};
于 2015-03-24T10:53:46.027 回答