2009-09-24 21 views

Respuesta

10

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 su caja de herramientas, y vale la pena investigar un poco más de tiempo.

+0

@Charming Anunciante Anónimo: ¿Echas de menos lo que dije "Si no puedes"? Perdóname por tratar de ser útil. – RichieHindle

+1

@Richie: neutralicé la votación negativa ya que tampoco puedo entender por qué. – tuergeist

+1

@tuergeist: Gracias. Eres un caballero – RichieHindle

37

La pregunta frecuente de Fiddler da la respuesta a esto.

Básicamente, enruta tu tráfico HTTP a través de Fiddler (es decir, usa Fiddler como proxy).

Aquí hay algunos enlaces que le ayudarán:
Fiddler Web Debugging - Configuring Clients

cual a su vez enlaces a aquí:
Take the Burden Off Users with Automatic Configuration in .NET

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

<system.net> 
    <defaultProxy> 
    <proxy 
     proxyaddress="http://[your proxy address and port number]" 
     bypassonlocal="false" 
    /> 
    </defaultProxy> 
</system.net> 

Ver here para detalles completos en el <defaultProxy> configuración.

Alternativamente, se puede utilizar 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(); 

Ver here para los detalles completos sobre la clase WebProxy.

También tenga en cuenta la "advertencia" importante que se menciona en el FAQ violinista:

¿Por qué no veo el tráfico enviado a http://localhost o http://127.0.0.1?
IE7 y .NET Framework se hardcodeados no enviar solicitudes de Host local a través de los proxies, y como un proxy, El violinista no recibirán tales tráfico.

La solución consiste en utilizar su nombre de máquina como el nombre de host en su lugar de Localhost o 127.0.0.1. Por lo tanto, para la instancia , en lugar de pulsar http://localhost:8081/mytestpage.aspx, , visite http://machinename:8081/mytestpage.aspx.

... O, si usted está utilizando Fiddler v2.1.8 o temprano, sólo tiene que utilizar http://ipv4.fiddler para golpear localhost en el adaptador de IPv4, o utilizar http://ipv6.fiddler para golpear localhost en el adaptador de IPv6.Este funciona especialmente bien con el servidor web de prueba Visual Studio (nombre en clave: Cassini) porque el servidor de prueba solo escucha en el adaptador de bucle invertido IPv4.

Por último, usted puede personalizar sus Reglas archivo de este modo:

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

... y luego acaba de golpear http://myapp, que actuará como un alias para 127.0.0.1:8081.

+0

gracias por todos los detalles – Dave

+1

en caso de que ayude a alguien, el valor predeterminado para http: // [su dirección de proxy y número de puerto] es http://127.0.0.1:8888, puede verificar/cambiar el puerto en Herramientas> Fiddler Opciones –

4

Si usted es capaz de modificar el URI de la solicitud, y es localhost entonces no es una solución mucho más simple: cambiar el nombre de host a localhost.fiddler.

Esto no tiene ninguna dependencia en la configuración de proxies (si se establece HttpWebRequest.Proxy o el elemento <defaultProxy> en un archivo .config).

(Desde comentario sobre this question.)

Cuestiones relacionadas