Obtenga solicitudes HTTP y respuestas hechas usando HttpWebRequest / HttpWebResponse para mostrar en Fiddler

¿Hay alguna manera de enganchar Fiddler para capturar solicitudes y respuestas hechas usando .NET HttpWebRequest y HttpWebResponse?

Las preguntas frecuentes de Fiddler dan la respuesta a esto.

En esencia, enrutas tu tráfico HTTP a través de Fiddler (es decir, utilizas Fiddler como proxy).

Aquí hay algunos enlaces que ayudarán:
Depuración web de Fiddler: configuración de clientes

Que a su vez se une a aquí:
Elimine los usuarios de Burden Off con la configuración automática en .NET

Puede lograr esto a través de algunos ajustes de configuración en el archivo web.config (para una aplicación ASP.NET) de esta manera:

     

Consulte aquí para obtener detalles completos sobre la .

Alternativamente, puede usar un objeto WebProxy en su código usando algo como:

 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(); 

Consulte aquí para obtener detalles completos sobre la clase WebProxy.

También tenga en cuenta la importante “advertencia” que se menciona en las preguntas frecuentes de Fiddler:

¿Por qué no veo el tráfico enviado a http: // localhost o http://127.0.0.1 ?
IE7 y .NET Framework están codificados para no enviar solicitudes de Localhost a través de ningún proxy, y como un proxy, Fiddler no recibirá dicho tráfico.

La solución consiste en utilizar el nombre de su máquina como nombre de host en lugar de Localhost o 127.0.0.1. Entonces, por ejemplo, en lugar de presionar http: // localhost: 8081 / mytestpage.aspx , en su lugar, visite http: // machinename: 8081 / mytestpage.aspx .

… O, si está utilizando Fiddler v2.1.8 o posterior, simplemente use http: //ipv4.fiddler para acceder a localhost en el adaptador IPv4, o use http: //ipv6.fiddler para acceder a localhost en el adaptador IPv6 . Esto funciona especialmente bien con el servidor web de prueba de Visual Studio (nombre en clave: Cassini) porque el servidor de prueba solo escucha en el adaptador de bucle invertido IPv4.

Por último, puede personalizar su archivo de Reglas así:

  static function OnBeforeRequest(oSession:Fiddler.Session) { if (oSession.HostnameIs("MYAPP")) { oSession.host = "127.0.0.1:8081"; } } 

… y luego simplemente pulse http: // myapp , que actuará como un alias para 127.0.0.1:8081.

Si no puede, Wireshark es una herramienta similar que funciona en el nivel de hardware de la red, por lo que puede capturar el tráfico de red desde cualquier aplicación.

Wireshark es un poco más complejo que Fiddler, y más general, pero es una gran herramienta para tener en tu caja de herramientas, y vale la pena investigarlo un poco más.

Si puede modificar el URI de solicitud, y es localhost entonces hay una solución mucho más simple: cambie el nombre de host a localhost.fiddler .

Esto no tiene ninguna dependencia en la configuración de proxies (ya sea estableciendo HttpWebRequest.Proxy o el elemento en un archivo .config ).

(Del comentario sobre esta pregunta )