节点 http 请求不通过代理
Node http requests not going through proxy
我们目前正在 node-webkit 中构建桌面应用程序,我们需要向远程服务器发送 http 请求。为此,我们决定使用请求,一个用于节点的 http 包装器模块。
除我们的一台机器外,这在所有机器上都能正常工作。下载代码看起来有点像这样:
var options = {
url: url
};
request.post(options
, function (error, response, body)
{
if (!error && response.statusCode == 200)
{
cb && cb(null, body);
}
}
).on('error', function (err)
{
}).pipe(writeStream);
所以我们在我的机器上得到的结果是这样的:
我们这里的网络代理服务器是172.24.8.14,我的地址是172.24.9.130。节点通过联系目标服务器的代理服务器发送请求。发回的结果是预期的 301。
...在另一台机器上:
这次节点试图将请求直接发送到目标服务器。这导致代理完全阻止请求。
奇怪的是我们没有在代码中指定代理,但是请求似乎确实通过了代理...但不是在另一台机器上。
这有什么原因吗?节点如何以某种方式检测代理并将请求发送到代理?
原因是我们的网络使用了 NTLM 代理,它要求 ISA 客户端在我们的机器上是 运行,但在另一台机器上不是 运行。在那台机器上安装 ISA 客户端允许流量正常通过代理。
我们目前正在 node-webkit 中构建桌面应用程序,我们需要向远程服务器发送 http 请求。为此,我们决定使用请求,一个用于节点的 http 包装器模块。
除我们的一台机器外,这在所有机器上都能正常工作。下载代码看起来有点像这样:
var options = {
url: url
};
request.post(options
, function (error, response, body)
{
if (!error && response.statusCode == 200)
{
cb && cb(null, body);
}
}
).on('error', function (err)
{
}).pipe(writeStream);
所以我们在我的机器上得到的结果是这样的:
我们这里的网络代理服务器是172.24.8.14,我的地址是172.24.9.130。节点通过联系目标服务器的代理服务器发送请求。发回的结果是预期的 301。
...在另一台机器上:
这次节点试图将请求直接发送到目标服务器。这导致代理完全阻止请求。
奇怪的是我们没有在代码中指定代理,但是请求似乎确实通过了代理...但不是在另一台机器上。
这有什么原因吗?节点如何以某种方式检测代理并将请求发送到代理?
原因是我们的网络使用了 NTLM 代理,它要求 ISA 客户端在我们的机器上是 运行,但在另一台机器上不是 运行。在那台机器上安装 ISA 客户端允许流量正常通过代理。