基于NodeJS的HTTP客户端:如何validation请求?

这是我必须做一个简单的GET请求的代码:

var options = { host: 'localhost', port: 8000, path: '/restricted' }; request = http.get(options, function(res){ var body = ""; res.on('data', function(data) { body += data; }); res.on('end', function() { console.log(body); }) res.on('error', function(e) { console.log("Got error: " + e.message); }); }); 

但是“/ restricted”这个path需要一个简单的基本HTTPauthentication。 我如何添加凭据进行身份validation? 在NodeJS手册中,我找不到与基本httpauthentication相关的任何东西。 提前致谢。

您需要将授权添加到像使用base64编码的标头之类的选项。 喜欢:

 var options = { host: 'localhost', port: 8000, path: '/restricted', headers: { 'Authorization': 'Basic ' + new Buffer(uname + ':' + pword).toString('base64') } }; 

在较新的版本中,您也可以将auth参数(格式为username:password,无编码)添加到您的选项中:

 var options = { host: 'localhost', port: 8000, path: '/restricted', auth: username + ':' + password }; request = http.get(options, function(res){ //... }); 

(注意:在v0.10.3上testing)

我build议使用请求模块,它支持广泛的function,包括HTTP基本authentication。

 var username = 'username', password = 'password', url = 'http://' + username + ':' + password + '@some.server.com'; request({url: url}, function (error, response, body) { // Do more stuff with 'body' here }); 

以下是有关基本HTTP身份validation的一些信息。