2013-10-10 51 views
3

我可以在nodejs中抓取網頁,但我需要首先對自己進行身份驗證。捲曲你可以用curl --user user:password [url]來做到這一點。在nodejs中使用--user選項捲曲

如何在節點中實現相同的結果?

回答

7

您只需將授權標頭添加到您的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 
});