在NodeJS中使用Proxy获得“无效协议”

时间:2014-09-29 16:56:19

标签: node.js proxy

我正在尝试通过nodeJs中的代理连接,但我没有任何结果或错误。 我正在使用mikeal/request

我在命令行中测试了代理,它运行正常:

$ http_proxy=localhost:9060 wget http://wtfismyip.com/json
$ cat json 

返回

{
   "YourFuckingIPAddress" : "62.236.108.73",
   "YourFuckingLocation" : "Finland",
   "YourFuckingHostname" : "effi.org",
   "YourFuckingISP" : "TDC Oy Finland"
}

正如所料。但是我在nodeJs中的请求:

router.route('/proxy-ip')
    .get(function (req, res) {

        var request_options = {
            url: 'http://wtfismyip.com/json',
            proxy: {
                host: "http://localhost",
                port: 9060
            }
        };

        console.log({request:request_options});

        request.get(request_options,
            function (error, response, json) {
                if (!error && response.statusCode == 200) {
                    res.send(json);
                } else {
                    console.log({'request': request, 'response': response, 'error': error, 'json': json});
                    res.send({'response': response, 'error': error, 'json': json});
                }
            }
        );

    });

记录无效协议错误:

  error: [Error: Invalid protocol: http]

有谁知道如何修复它?有没有人在mikeal / request& amp;的NodeJS?

1 个答案:

答案 0 :(得分:2)

修正了它!

我用字符串&替换了代理对象它有效:

            proxy: 'http://localhost:9060',