Вход

Просмотр полной версии : https запрос через прокси


newx
13.04.2015, 20:39
Собственно сабж в заголовке.
Как можно в nodejs послать https-запрос, используя прокси-сервер?
Если можно - с примерами.
В гугле ни чего связного не нашел на эту тему, да и сильно слаб я в английском, так что буду очень благодарен вам за любую информацию на этот счет.
Заранее огромное спасибо.

theKingOfJava
13.04.2015, 21:49
Даю пример с http, с https должно быть аналогично, но не проверял, у меня сертификаты не настроены

http.createServer( function( request, response )
{
var url_parts = url.parse( request.url );

var options = {
hostname : request.headers.host,
port : 80,
path : url_parts.path,
method : request.method,
headers : request.headers
};

var request_data;

var proxy_client = http.request( options, function( res )
{

res.on( 'data', function ( chunk )
{
response.write( chunk, 'binary' );
} );

res.on( 'end', function()
{
response.end();
} );

res.on( 'error', function ( e )
{
console.log( 'Error with client ', e );
} );

response.writeHead( res.statusCode, res.headers );
} );

request.on( 'data', function ( chunk )
{
request_data = request_data + chunk;
proxy_client.write( chunk, 'binary' );
} );

request.on( 'end', function()
{
proxy_client.end();
} );

request.on( 'error', function ( e )
{
console.log( 'Problem with request ', e );
} );

} ).listen(yourport);

newx
13.04.2015, 22:10
В том то и дело, что для http проблем нет совершенно. Меня интересует именно https - там не все так прозрачно, поскольку через прокси требуется передавать защищенные(ssl-протокол) данные.

newx
13.04.2015, 22:13
Кажется я нашел ответ на свой вопрос.
Всем огромное спасибо.
Кому интересно - вот замечательная статья, в которой все по полочкам:
http://blog.vanamco.com/proxy-requests-in-node-js/

agsh
14.04.2015, 11:57
https://github.com/request/request#proxies