从代理后面的URL读取数据

时间:2015-04-03 04:34:57

标签: node.js

WEB服务器我想连接

我有一个在专用网络中运行的Web服务。这个服务器是一个Web服务,如果我在浏览器中设置socks代理,我可以看到它在浏览器中工作。

我的服务

我的机器上需要 node.js服务器才能使用socks代理连接并调用Web服务器

我的UseCase

我需要发布对xml数据的请求以及做一些get请求。

我的问题

我的应用无法连接到socks代理后面隐藏的服务器。 我不想为节点或任何东西设置全局代理,仅针对应用程序的一部分。

已更新:工作解决方案

虽然答案指向了正确的方向,但我将在此处包含最终的工作解决方案以供参考,因为它需要对github上的示例进行一些修改

    var shttp = require('socks5-http-client');
    var options = {} ; 
    options.host = 'ip.of.web.service';
    options.port = 1919;     //port of webservice
    options.path = '/control/getjson';    //path on webservice to get
    options.socksPort = 8778;       //socks proxy port
    options.socksHost = 'ip.of.socks.proxy';  

    var req = shttp.get(options, function (res) {
        res.setEncoding('utf8');
        res.on('readable', function () { 
            callback(res);   //send response to my function for further processing.
        });
    });

1 个答案:

答案 0 :(得分:2)

内置的http客户端对象本身不支持使用socks代理。

通过2个库,可以轻松通过socks代理连接到http端点。试一试

使用socks5-http-client连接到http端点 使用socks5-https-client连接到https端点