在Node.js中使用--user选项的curl

11

我可以在nodejs中抓取网页,但是我需要先进行身份验证。在curl中,你可以使用curl --user user:password [url]来实现。

我该如何在node中实现同样的结果?

1个回答

20

您只需要在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
});

缓冲区已被弃用,我还能使用什么? - D4ITON

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接