Как использовать Fiddler для отладки трафика из любого приложения (например. Приложение C#/WPF)
Я пытаюсь отладить, что не так с моими HTTP-запросами от еще один вопрос здесь на SO. Поэтому я немного прочитал о Fiddler и хотел использовать его для отладки моей проблемы. Но я не могу получить трафик из моего приложения WPF, чтобы пройти через Fiddler. Я считаю, что мне нужно настроить прокси. Я использую WebClient для базового примера, но я думаю, что мне понадобится WebRequest позже. Но сейчас, с помощью простого WebClient, как я могу заставить его пройти через Fiddler (я считаю, что должен установить прокси на localhost:8888)?
обновление:
Я не знаю, правильно ли я поступил или нет, но я попытался
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 ответов
Я нашел решение в это 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
.
может быть, немного поздно, но...
я обойду это, просто добавив "точку" к localhost, поэтому вместо доступа localhost
, Я пытаюсь получить доступ к localhost.
(обратите внимание на точку в конце имени хоста)
должное: Я получил этот необычный совет от этой темы http://www.west-wind.com/weblog/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler-in-NET-HTTP-Clients-and-WCF-Proxies#596591
работает отлично!
вы можете найти ответ в посте ниже https://stackoverflow.com/a/7506427/471499
в нем перечислены, что вам нужно добавить это в свой веб.config или App.Config
<system.net>
<defaultProxy>
<proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" />
</defaultProxy>
</system.net>
- затем запустите Fiddler на том же компьютере, что и запущенное приложение.
- нажмите Инструменты / Параметры скрипача = > соединения = > настройте порт как 8888.(разрешить удаленный, если вам это нужно)
- Ok, затем из меню Файл, захватить трафик.
это все, но не забудьте удалить сеть.строки конфигурации после закрытия скрипача, потому что если вы этого не сделаете, он сделает ошибку.
ссылка : http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy
все время я использую ниже конфигурацию для перенаправления сетевых HTTP-вызовов для передачи через прокси-сервер fiddler из моих приложений.
это работает во всех видах приложений .NET (который имеет либо web.config
или app.config
файл) и в fiddler лучше всего отключить Capture Traffic
возможность избежать захвата общего трафика из всех запущенных приложений. Клавиша быстрого доступа для этого F12.
<system.net>
<defaultProxy>
<proxy proxyaddress="http://localhost:8888/" />
</defaultProxy>
</system.net>
это ценная конфигурация, если у вас есть третья сторона сборки, в которых у вас нет возможности изменить код, вызывающий URL-адрес.
надеюсь, это кому-то поможет.
"IIS Express не будет получать трафик на machinename, поэтому вместо этого маршрут к localhost.скрипач fiddler2.com/documentation/Configure-Fiddler/Troubleshooting / ... - robrich May 9 '13 at 6: 02"
Робрич выше сделал это правильно. Это единственное, что сработало, поскольку я могу использовать только IIS Express.