Obtenez les requêtes HTTP et les réponses faites en utilisant HttpWebRequest/HttpWebResponse à afficher dans Fiddler
est-ce que je peux brancher Fiddler pour capturer les requêtes et les réponses faites en utilisant .NET HttpWebRequest et HttpWebResponse?
3 réponses
la FAQ Fiddler donne la réponse à cela.
vous acheminez essentiellement votre trafic HTTP via Fiddler (i.e. utilisez Fiddler comme un proxy).
voici quelques liens qui vous aideront:
Fiddler Web Debugging-configuration des Clients
qui à son tour est relié à ici:
alléger le fardeau des utilisateurs avec la Configuration automatique en .NET
vous pouvez y parvenir via certains paramètres de configuration sur le web.fichier de configuration (pour un ASP.NET application) comme ainsi:
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
Voir ici pour plus de détails sur le <defaultProxy>
.
alternativement, vous pouvez utiliser un objet WebProxy dans votre code en utilisant quelque chose comme:
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();
Voir ici pour des informations complètes sur l' Classe WebProxy.
notez également l'important "Avertissement" qui est mentionné dans la FAQ Fiddler:
Pourquoi Je ne vois pas le trafic envoyé à http://localhost ou http://127.0.0.1 ?
L'IE7 et le. Net Framework sont codé en dur pour ne pas envoyer de demandes Localhost à travers toutes les procurations, et as un mandataire, Fiddler ne recevra pas un tel circulation.la solution est d'utiliser votre nom de la machine comme nom d'hôte à la place de Localhost ou 127.0.0.1. Donc, pour exemple, plutôt que de frapper http://localhost:8081/mytestpage.aspx 1519120920" , au lieu de visiter http://machinename:8081/mytestpage.aspx .
...Ou, si vous utilisez Fiddler v2.1.8 ou plus tard, il suffit d'utiliser http://ipv4.fiddler pour frapper sur localhost l'adaptateur IPv4, ou utilisez http://ipv6.violon pour frapper localhost sur l'adaptateur IPv6. Ce fonctionne particulièrement bien avec le Visuel Studio test webserver (nom de code): Cassini) parce que le serveur de test seulement écoute sur l'adaptateur de boucle IPv4.
enfin, vous pouvez personnaliser vos règles fichier comme ceci:
static function OnBeforeRequest(oSession:Fiddler.Session) { if (oSession.HostnameIs("MYAPP")) { oSession.host = "127.0.0.1:8081"; } }
...et puis juste appuyer sur http://myapp , qui agira comme un alias pour 127.0.0.1: 8081.
si vous ne pouvez pas, Wireshark est un outil similaire qui fonctionne au niveau du matériel réseau, de sorte qu'il peut capturer le trafic réseau à partir de n'importe quelle application.
Wireshark est un peu plus complexe que Fiddler, et plus général, mais c'est un excellent outil à avoir dans votre boîte à outils, et vaut la peine d'enquêter un peu de temps dans.
si vous êtes capable de modifier L'URI de la requête, et qu'il est localhost
, alors il y a une solution beaucoup plus simple: changer le nom d'hôte en localhost.fiddler
.
cela n'a aucune dépendance sur la mise en place de mandataires (que ce soit la mise en place de HttpWebRequest.Proxy
ou l'élément <defaultProxy>
dans un fichier .config
).
(du commentaire sur cette question .)