我正在尝试通过代理从 Web 访问资源。不像this response ,我需要设置域\用户和密码身份验证。
好吧,这是我的代码:
var http = require('http');
var options = {
host: "proxy.domain.com",
port: 80,
path: "http://www.google.com",
headers: {
Host: "www.google.com"
},
method: 'GET',
auth: 'domain\\user:password'
};
http.request(options, function (data) {
console.log('success!', data);
}).on("error", function (e) {
console.log('error :(', e);
});
上面的代码立即抛出以下错误:
error :( { [Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }
所以,我猜没有发送请求。
怎么了? 如何发送带有我尝试设置的参数的请求?
提前致谢
最佳答案
此代码对我有用(使用 base64 编码并在 header 中设置 Proxy-Authorization):
var username = 'yourUsername';
var password = 'yourPass';
var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64');
var options = {
host: "proxy",
port: 8080,
path: "https://www.google.com",
headers: {
Host: "www.google.com",
"Proxy-Authorization" : auth
}
};
关于javascript - 带有代理和域\用户的 node.js http :password authorization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22487850/