Как использовать Fiddler для отладки трафика из любого приложения (например, C # / WPF app) - PullRequest
37 голосов
/ 09 октября 2010

Я пытаюсь отладить, что не так с моими HTTP-запросами от другой вопрос здесь, на SO . Итак, я прочитал немного о Fiddler и хотел использовать его для отладки моей проблемы. Но я не могу получить трафик из моего приложения WPF для прохождения через Fiddler. Я считаю, что мне нужно настроить прокси. Я использую WebClient для базового примера, но я думаю, что мне потребуется WebRequest позже. Но пока, с помощью простого WebClient, как я могу заставить его проходить через Fiddler (я считаю, что я должен установить прокси для localhost: 8888)?

UPDATE:

Я не знаю, правильно ли я поступил или нет, но я попытался

var wc = new WebClient();
WebProxy proxy = new WebProxy();
proxy.Address = new Uri("http://localhost:8888");
wc.Proxy = proxy;

но не получилось - я не вижу трафика в Fiddler

Я пытался ...

var wc = new WebClient();
WebProxy proxy = new WebProxy("127.0.0.1", 8888);
wc.Proxy = proxy;

все равно ничего

Ответы [ 5 ]

52 голосов
/ 09 октября 2010

Я нашел решение на этой странице fiddler2.com

Почему я не вижу трафик, отправленный на http://localhost или http://127.0.0.1?

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

Самый простой обходной путь - использовать имя вашего компьютера в качестве имени хоста. вместо Localhost или 127.0.0.1. Так, например, вместо удара http://localhost:8081/mytestpage.aspx, вместо того, чтобы посетить http://machinename:8081/mytestpage.aspx.

16 голосов
/ 18 августа 2011

Возможно, немного поздно, но ...

Я могу обойти это, просто добавив «точку» к localhost, поэтому вместо доступа к localhost я пытаюсь получить доступ к localhost. (обратите внимание на точку в конце имени хоста)

Кредит, причитающийся кредит: Я получил этот необычный совет из этой темы http://www.west -wind.com / weblog / posts / 2009 / Jan / 14 / Monitoring-HTTP-Output-with-Fiddler-in-NET-HTTP-Clients-and-WCF -Прокси # 596591

Работает отлично!

12 голосов
/ 31 июля 2014

Вы можете найти ответ в следующем посте https://stackoverflow.com/a/7506427/471499

. В нем перечислены, что вам нужно добавить это в ваш web.config ИЛИ App.Config

<system.net>
  <defaultProxy>
    <proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" />
  </defaultProxy>
</system.net>
  1. , затем StartFiddler на той же машине, где запущено приложение.
  2. Нажмите Инструменты |Опции Fiddler => Подключения => настроить порт на 8888. (разрешить удаленный доступ, если вам это нужно)
  3. Хорошо, затем из меню файлов захватить трафик.

Вот и все,но не забудьте удалить строки web.config после закрытия фиддлера, потому что если вы этого не сделаете, он выдаст ошибку.

Ссылка: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy

3 голосов
/ 27 июня 2014

Все время я использую приведенную ниже конфигурацию для перенаправления сетевых HTTP-вызовов для прохождения через прокси-сервер Fiddler из моих приложений.

Это работает во всех видах приложений .NET (которые имеют файл web.config или app.config), и в fiddler лучше отключить опцию Capture Traffic, чтобы избежать сбора общего трафика от всех работающих приложений.Сочетание клавиш для этого: F12 .

<system.net>
    <defaultProxy>
        <proxy proxyaddress="http://localhost:8888/" />
    </defaultProxy>
</system.net>

Это ценная конфигурация, если у вас есть сторонние сборки, в которых у вас нет шансов изменить код, который вызывает URL.

Надеюсь, это кому-нибудь поможет.

1 голос
/ 25 июля 2014

"IIS Express не будет получать трафик на имя машины, поэтому вместо этого направьте на localhost.fiddler fiddler2.com/documentation/Configure-Fiddler/Troublesho// - robrich 9 мая '13 в 6:02"

RobRich выше понял все правильно. Это единственное, что сработало, так как я могу использовать только IIS Express.

...