Fiddler не перехватывает веб-запросы PowerShell

Я пытаюсь использовать Fiddler, чтобы помочь кому-то решить проблему с Invoke-RestMethod вызовы ASP.NET WebAPI. К сожалению, когда я звоню Invoke-RestMethod в PowerShell Fiddler не перехватывает HTTP-сообщения.

Когда я использую Internet Explorer для просмотра корня веб-сайта ASP.NET, который является частью того же приложения, Fiddler перехватывает трафик, как и ожидалось.

Может кто-нибудь объяснить, почему Fiddler не захватывает HTTP-трафик через PowerShell, и как решить эту проблему?

4 ответа

Решение

Fiddler фактически работает через прокси и автоматически устанавливает настройки прокси в IE при запуске. Вы можете проверить это, запустив fiddler, а затем выбрав "Настройки Lan" в разделе "Свойства обозревателя"> "Подключение".

Invoke-RestMethod имеет -Proxy параметр, который вы можете использовать, чтобы указать на прокси-сервер Fiddler. Я думаю, что по умолчанию 127.0.0.1:8888:

Invoke-RestMethod -Proxy 'http://127.0.0.1:8888' ....

Изменить: добавив скриншот, чтобы подтвердить ответ выше.

Параметры Fiddler

У меня была похожая проблема (с Powershell & Fiddler2) при установке пакетов NPM.

Это сработало после настройки Fiddler в качестве обратного прокси, а затем с помощью команды, упомянутой в ответе здесь (спасибо за это JNK).

Пошаговые инструкции ниже:

  1. Выполните шаги, упомянутые здесь, и напишите правило FiddlerScript в одну строку, чтобы использовать Fiddler в качестве обратного прокси-сервера.

В моем случае это было:

if (oSession.host.toLowerCase () == "127.0.0.1:8888") oSession.host = "127.0.0.1:80";

  1. Затем в PowerShell используйте настроенные параметры прокси:

PS F:> npm установить yo -g -proxy ' http://127.0.0.1:8888/'

  1. Теперь трафик PowerShell должен проходить через Fiddler.

Мне удалось заставить его работать, сбросив сертификаты https скрипача (см. этот ответ ).

У меня была такая же проблема, когда я тестировал проект, и оказалось, что причиной этой ошибки был запуск Fiddler..!!

Если вы используете Fiddler для перехвата http-запроса, отключите его...

Это одна из многих причин такой ошибки.

Чтобы исправить Fiddler, вам может потребоваться сбросить сертификаты Fiddler Https .

Я попробовал все опубликованные решения в powershell v5, но они не работают.

Единственное решение — использоватьpowershll core v7.x (tried v7.4)и он работает нормально, и Fiddler МОЖЕТ перехватывать веб-запросы PowerShell.

Кроме того, работает использование Curl.exe из PowerShel v5 с опцией прокси:

      curl.exe ...  -x 127.0.0.1:8888 
Другие вопросы по тегам