节点http请求不通过代理

时间:2015-10-27 13:57:43

标签: node.js http proxy node-webkit node-request

我们目前正在node-webkit中构建桌面应用程序,我们需要将http请求发送到远程服务器。为此,我们决定使用request,一个用于节点的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,这是预期的。

......在另一台机器上:

此时Node尝试将请求直接发送到目标服务器。这导致代理完全阻止请求。

奇怪的是我们没有在代码中指定代理,但请求似乎通过代理...而不是在另一台机器上。

这有什么理由吗?节点如何以某种方式检测代理并将请求发送给代理?

1 个答案:

答案 0 :(得分:1)

原因是我们的网络使用的是一个NTLM代理,它需要ISA客户端在我们的机器上运行,但它没有在另一台机器上运行。在该计算机上安装ISA客户端允许流量正常通过代理。