2016-10-23 1 views
0

node.jsのドキュメントからHTTP CONNECTトンネルを使用する例があります。nodejs。どのようにhttp要求のトラフをHTTP CONNECTトンネルを送信するには?

var options = { 
    port: 1337, 
    hostname: '127.0.0.1', 
    method: 'CONNECT', 
    path: 'www.google.com:80' 
    }; 

    var req = http.request(options); 
    req.end(); 

    req.on('connect', (res, socket, head) => { 
    console.log('got connected!'); 

    // make a request over an HTTP tunnel 
    socket.write('GET/HTTP/1.1\r\n' + 
       'Host: www.google.com:80\r\n' + 
       'Connection: close\r\n' + 
       '\r\n'); 
    socket.on('data', (chunk) => { 
     console.log(chunk.toString()); 
    }); 
    socket.on('end',() => { 
     proxy.close(); 
    }); 
    }); 

自分(トラフsocket.write)によってHTTPライブラリの代わりに、HTTPリクエストボディトラフソケットを渡すことで確立されたトンネルでソケットを使用する方法はありますか?

答えて

1

通常のhttpライブラリにはプロキシのサポートがないと思うので、自分で実装する必要があります。

httpの上に構築された)requestパッケージはしかし、物事が少し楽になります。

const request = require('request'); 

request({ 
    url : 'http://www.google.com', 
    proxy : 'http://localhost:1337' 
    tunnel : true 
}, (err, res, body) => { 
    ... 
}); 

tunnel : trueを指定することで、それはトンネルプレーンなHTTPリクエストをもなります。

関連する問題