Node.js - HTTP通过Squid代理授权问题

ant*_*ant 4 squid node.js

我正在尝试使用http.get发出一个简单的请求.但我需要通过Squid代理提出这个请求.这是我的代码:

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();
Run Code Online (Sandbox Code Playgroud)

根据设置代理的操作团队,我的用户名和密码是正确的.问题是我不断获得407 - 授权所需的状态.

我提出请求的方式有问题吗?或者是否需要配置Squid代理?

提前致谢.

wul*_*ong 8

您应该auth在以下headers部分中包括options:

var options = {
  host: host,
  port: 3128,
  path: "http://www.google.com",
  headers: {
    'Proxy-Authorization': auth,
    Host: 'www.google.com'
  }
};
Run Code Online (Sandbox Code Playgroud)

  • 伙计,我不敢相信我错过了那个。谢谢。不过,Squid 并不是在寻找“授权”标头。它寻找“代理授权” (2认同)