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

use*_*904 8 curl node.js

我可以在nodejs中抓取一个网页,但我需要先验证自己.在curl你可以这样做curl --user user:password [url].

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

hex*_*ide 16

您只需要为HTTP请求添加授权标头.的Authorization报头中应包含的用户名和密码与结肠,其然后应Base64编码相结合,然后用前置Basic和一个单一的空间.

var header = 'Basic ' + new Buffer(user + ':' + pass).toString('base64');
Run Code Online (Sandbox Code Playgroud)

这是一个涉及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
});
Run Code Online (Sandbox Code Playgroud)