2011-11-02 47 views
4

我想使用http.get發出一個簡單的請求。但我需要通過Squid代理髮出這個請求。這是我的代碼:Node.js - HTTP通過魷魚代理授權問題得到

var http = require('http'); 
var username = 'username'; 
var password = 'password'; 
var host = "proxy_host"; 
var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64'); 

var options = { 
    host: host, 
    port: 3128, 
    path: "http://www.google.com", 
    authorization: auth, 
    headers: { 
    Host: 'www.google.com' 
    } 
}; 

var req = http.request(options, function(res) { 
    console.log('STATUS: ' + res.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res.headers)); 
}); 

req.end(); 

根據設置代理的操作團隊,我的用戶名和密碼是正確的。問題是我一直得到407 - 授權所需的狀態回來。

我提出請求的方式有什麼問題嗎?還是需要配置Squid代理?

在此先感謝。

回答

8

你應該包括在optionsheaders部分auth

var options = { 
    host: host, 
    port: 3128, 
    path: "http://www.google.com", 
    headers: { 
    'Proxy-Authorization': auth, 
    Host: 'www.google.com' 
    } 
}; 
+1

男人,我無法相信我錯過了。謝謝。不過,Squid並不是在尋找'Authorization'標題。它尋找''代理授權'' – ant

+0

夥計們,你救了我的一天!同意@Anthony它與'代理授權'爲我工作。謝謝! –