Можно ли подключить Fiddler для захвата запросов и ответов с помощью .NET HttpWebRequest и HttpWebResponse?
Получите HTTP-запросы и ответы, сделанные с помощью HttpWebRequest/HttpWebResponse, чтобы показать в Fiddler
Ответ 1
Проверьте это сообщение в блоге Я думаю, что это то, что вы хотите.
Ответ 2
Часто задаваемые вопросы по Fiddler дают ответ на этот вопрос.
Вы по существу маршрутизируете свой HTTP-трафик через Fiddler (т.е. используйте Fiddler в качестве прокси-сервера).
Вот некоторые ссылки, которые помогут:
Отладка веб-сайтов Fiddler - настройка клиентов
В свою очередь, ссылки здесь:
Отнесите пользователей с автоматической настройкой в .NET
Это можно сделать с помощью некоторых параметров конфигурации в файле web.config(для приложения ASP.NET):
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
Подробнее о настройке <defaultProxy>
см. здесь.
В качестве альтернативы вы можете использовать объект WebProxy в своем коде, используя что-то вроде:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", false);
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
См. здесь для получения полной информации о классе WebProxy.
Также обратите внимание на важную "оговорку", которая упоминается в FAQ Fiddler:
Почему я не вижу трафик, отправленный в http://localhost или http://127.0.0.1?
IE7 и .NET Framework являются hardcoded не отправлять запросы для Localhost через любые прокси-серверы и прокси, Fiddler не получит такой трафик.Обходной путь - использовать имя машины вместо имени хоста Localhost или 127.0.0.1. Таким образом, для вместо того, чтобы ударить http://localhost:8081/mytestpage.aspx, вместо этого http://machinename:8081/mytestpage.aspx.
... Или, если вы используете Fiddler v2.1.8 или позже, просто используйте http://ipv4.fiddlerдля атаки localhost на адаптер IPv4, или используйте http://ipv6.fiddler, чтобы попасть localhost на адаптере IPv6. Эта особенно хорошо работает с визуальным Студийный веб-сервер (кодовое имя: Cassini), поскольку только тестовый сервер прослушивает адаптер петли IPv4.
Наконец, вы можете настроить свои правила файл следующим образом:
static function OnBeforeRequest(oSession:Fiddler.Session) { if (oSession.HostnameIs("MYAPP")) { oSession.host = "127.0.0.1:8081"; } }
... а затем просто нажмите http://myapp, который будет действовать как псевдоним для 127.0.0.1:8081.
Ответ 3
Если вы не можете, Wireshark - это аналогичный инструмент, который работает на уровне сетевого оборудования, поэтому он может захватывать сетевой трафик с любое приложение.
Wireshark немного сложнее, чем Fiddler, и более общий, но это отличный инструмент для вашего инструментария, и стоит немного поработать над ним.
Ответ 4
Если вы можете изменить URI запроса и это localhost
, тогда существует гораздо более простое решение: измените имя хоста на localhost.fiddler
.
Это не зависит от настройки прокси (установка HttpWebRequest.Proxy
или <defaultProxy>
в файле .config
).
(Из комментариев этот вопрос.)