Подтвердить что ты не робот

Получите HTTP-запросы и ответы, сделанные с помощью HttpWebRequest/HttpWebResponse, чтобы показать в Fiddler

Можно ли подключить Fiddler для захвата запросов и ответов с помощью .NET HttpWebRequest и HttpWebResponse?

4b9b3361

Ответ 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).

(Из комментариев этот вопрос.)