使用nodejs中的--user选项卷曲

时间:2013-10-10 02:03:00

标签: node.js curl

我可以在nodejs中抓取一个网页,但我需要先验证自己。在卷曲中,您可以使用curl --user user:password [url]执行此操作。

如何在节点中获得相同的结果?

1 个答案:

答案 0 :(得分:12)

您只需要为HTTP请求添加授权标头。 Authorization标题应包含用户名和密码以及冒号,然后冒号应为Base64编码,然后加上Basic和单个空格。

var header = 'Basic ' + new Buffer(user + ':' + pass).toString('base64');

这是一个涉及GET请求的完整示例。

var http = require('http');

var user = 'username';
var pass = 'password';

var auth = new Buffer(user + ':' + pass).toString('base64');
var options = {
  host: 'example.com',
  port: 80,
  path: '/path',
  headers: {
    'Authorization': 'Basic ' + auth
  }
};

http.get(options, function(res) {
  // response is here
});