Как мне настроить Fiddler, чтобы объявить его реальным тестируемым сервером?

352
Sandeep

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

http://localhost:8000 

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

http://localhost:8001 ----->server1  http://localhost:8002 ------->server2  http://localhost:8003 --------->server3 

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

  1. Можно ли разместить Fiddler "перед" server2, объявив его IP вместо фактического server2? Если да, то как?

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

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

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

0

1 ответ на вопрос

0
heavyd

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

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

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

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

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

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