Je suis sur le point de déboguer ce qui ne va pas avec mes demandes HTTP de ne autre question ici sur SO . J'ai donc lu un peu sur Fiddler et je voulais l'utiliser pour déboguer mon problème. Mais je n'arrive pas à obtenir du trafic de mon application WPF pour passer par Fiddler. Je crois que je dois configurer un proxy. J'utilise un WebClient pour un exemple de base, mais je pense que j'aurai besoin d'une WebRequest plus tard. Mais pour l'instant, avec un WebClient simple, comment puis-je le faire passer par Fiddler (je crois que je dois définir le proxy sur localhost: 8888)?
MISE À JOUR:
Je ne sais pas si j'ai bien fait ou pas mais j'ai essayé
var wc = new WebClient();
WebProxy proxy = new WebProxy();
proxy.Address = new Uri("http://localhost:8888");
wc.Proxy = proxy;
mais a échoué - je ne vois aucun trafic dans Fiddler
J'ai essayé ...
var wc = new WebClient();
WebProxy proxy = new WebProxy("127.0.0.1", 8888);
wc.Proxy = proxy;
toujours rien
J'ai trouvé la solution sur cette page fiddler2.com
Pourquoi ne vois-je pas le trafic envoyé à
http://localhost
ouhttp://127.0.0.1?
Internet Explorer et le .NET Framework sont codés en dur pour ne pas envoyer de demandes de Localhost via des proxy, et en tant que proxy, Fiddler ne recevra pas ce trafic.
La solution de contournement la plus simple consiste à utiliser le nom de votre ordinateur comme nom d'hôte au lieu de Localhost ou 127.0.0.1. Ainsi, par exemple, plutôt que de frapper
http://localhost:8081/mytestpage.aspx
, visitez plutôthttp://machinename:8081/mytestpage.aspx
.
Peut-être un peu tard, mais ...
Je contourne cela simplement en ajoutant un "point" à localhost, donc au lieu d'accéder à localhost
, j'essaie d'accéder à localhost.
(remarquez le point à la fin du nom d'hôte)
Crédit où le crédit est dû: j'ai obtenu cette astuce inhabituelle de ce fil http://www.west-wind.com/weblog/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler- In-NET-HTTP-Clients-and-WCF-Proxies # 596591
Fonctionne bien!
Vous pouvez trouver la réponse ci-dessous https://stackoverflow.com/a/7506427/471499
il indique que vous devez l'ajouter dans votre web.config OR App.Config
<system.net>
<defaultProxy>
<proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" />
</defaultProxy>
</system.net>
C'est tout, mais n'oubliez pas de supprimer les lignes web.config après avoir fermé le violon, car si vous ne le faites pas, cela fera une erreur.
Référence: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy
Tout le temps, j'utilise la configuration ci-dessous pour rediriger les appels HTTP du réseau pour passer par le proxy fiddler de mes applications.
Cela fonctionne dans toutes sortes d'applications .NET (qui ont soit web.config
ou app.config
file) et dans fiddler de son mieux pour désactiver Capture Traffic
option pour éviter de capturer le trafic général de toutes les applications en cours d'exécution. La touche de raccourci pour cela est F12.
<system.net>
<defaultProxy>
<proxy proxyaddress="http://localhost:8888/" />
</defaultProxy>
</system.net>
C'est une configuration précieuse si vous avez des assemblys tiers dans lesquels vous n'avez aucune chance de changer le code qui appelle l'URL.
J'espère que ça aidera quelqu'un.
"IIS Express ne recevra pas de trafic vers le nom de la machine, alors dirigez-vous vers localhost.fiddler fiddler2.com/documentation/Configure-Fiddler/Troubleshooting/… - robrich 9 mai 13 à 6:02"
RobRich ci-dessus a bien compris. C'est la seule chose qui a fonctionné car je ne peux utiliser que IIS Express.