Можно ли использовать прокси (например, fiddler) с ClientRequest Node.js - PullRequest
41 голосов
/ 02 января 2012

Можно ли настроить файл node.js для распознавания прокси-сервера (например, Fiddler) и маршрутизации всех ClientRequest через прокси-сервер?

Я использую узел в Windows и хотел бы отлаживать http-запросы так же, как ябудет использовать Fiddler для JavaScript в браузере.

Просто поясните, я не пытаюсь создавать прокси или запросы прокси, полученные сервером.Я хочу направлять запросы, сделанные http.request() через прокси.Я хотел бы использовать Fiddler для проверки как запроса, так и ответа, как если бы я выполнял запрос в браузере.

Ответы [ 5 ]

53 голосов
/ 03 ноября 2014

Я считаю следующее изящным.Модуль request считывает информацию прокси-сервера из переменной среды Windows.

Вводя следующую команду в командной строке Windows, вы устанавливаете ее на время жизни оболочки.Вам просто нужно запустить приложение узла из этой оболочки.

set https_proxy=http://127.0.0.1:8888 
set http_proxy=http://127.0.0.1:8888
set NODE_TLS_REJECT_UNAUTHORIZED=0
24 голосов
/ 05 апреля 2012

Чтобы направить ваши клиентские запросы через fiddler, измените ваш объект параметров следующим образом (например, непосредственно перед созданием http.request):

options.path = 'http://' + options.host + ':' + options.port + options.path;
options.headers.host = options.host;
options.host = '127.0.0.1';
options.port = 8888;

myReq = http.request(options, function (result) {
    ...
});
7 голосов
/ 04 сентября 2014

Если вы хотите отслеживать исходящие запросы от узла, вы можете использовать request module

и просто установить свойство proxy в опциях, например,

request.post('http://204.145.74.56:3003/test', {
headers :{ 'content-type' : 'application/octet-stream'}, 
'body' : buf ,
 proxy: 'http://127.0.0.1:8888'
}, function() {
   //callback
});

8888 - порт по умолчанию для fiddler.

5 голосов
/ 03 января 2012

Отвечая на мой собственный вопрос: согласно https://github.com/joyent/node/issues/1514 ответ - нет , но вы можете использовать модуль request, http://search.npmjs.org/#/request,, который поддерживает прокси.

4 голосов
/ 19 августа 2016
process.env.https_proxy = "http://127.0.0.1:8888";
process.env.http_proxy = "http://127.0.0.1:8888";
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
...