У меня работает один клиент и 3 сервера. Предположим, клиент работает

http://localhost:8000

а остальные три сервера работают на:

http://localhost:8001    ----->server1

http://localhost:8002    ------->server2

http://localhost:8003    --------->server3

Там также есть связь между этими серверами. Мой вопрос:

  1. Можно ли разместить Fiddler "перед" сервером2, указав его IP вместо реального сервера2? Если да, то как?

  2. Когда Fiddler получает POST-запрос от клиента, я хочу изменить сообщение и затем переслать его на server2? Как этого достичь?

  3. Точно так же, когда ответ возвращается с сервера2, измените его по мере необходимости, прежде чем возвращать его клиенту.

Если вышеуказанные операции не могут быть выполнены прокси-сервером Fiddler, предложите мне другой прокси-сервер, который может мне помочь.

1 ответ1

0

Хотя это не стандартный сценарий использования Fiddler, его можно настроить как обратный прокси-сервер. Подробные инструкции можно найти в документе Fiddler, но в основном:

  1. Настройте Fiddler для приема удаленных подключений
  2. Установите номер порта для конечного сервера (8002 для server2), используя значение DWORD с именем ReverseProxyForPort в разделе реестра HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2 , затем перезапустите Fiddler.
  3. Напишите правило FiddlerScript OnBeforeRequest чтобы переписать заголовок Host для входящих запросов:

Автор сценария:

if (oSession.host.toLowerCase() == "fiddlerserver:8888") oSession.host = "server2:8002";

Я также настроил бы Fiddler так, чтобы он не автоматически проксировал все запросы на компьютере с помощью флажка "Действовать как системный прокси при запуске" на вкладке "Подключения" в настройках.

Вы можете дополнительно изменить любой запрос POST, используя дополнительные правила FiddlerScript.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .