2012-03-08 16 views
21

Actualmente estoy escribiendo una aplicación java que utiliza HTTP POST para cargar un archivo csv y algunos otros parámetros a un servidor. El servidor sigue devolviendo 500 errores a mi aplicación y me gustaría ver la solicitud HTTP en Fiddler para poder ver la solicitud POST.
Cuando ejecuto Fiddler, no capturará ningún tráfico HTTP de la aplicación Java. He escrito una solicitud GET que funciona, por lo que sé que puedo comunicarme con el servidor, sin embargo, no se muestra tráfico a través de Fiddler.Fiddler no captura las solicitudes HTTP de la aplicación Java

+0

¿Hay un Java Servlet procesando la publicación? –

+0

¿estás seguro de que no se trata de tráfico https? – matcheek

+0

No hay. Estoy usando HTTPComponents de Apache para llamar a un método de carga desde una API en el servidor. – Andrew

Respuesta

18

Simplemente puede configurar como violinista proxy HTTP para su aplicación estableciendo las propiedades

http.proxyHost-localhost y http.proxyPort- para el tráfico HTTP y https.proxyHost/https.proxyPort para el tráfico HTTPS. Para el tráfico HTTPS, también debe agregar el certificado raíz de Fiddler (exportable en el cuadro de diálogo de opciones) como certificado de confianza a su aplicación.

Puede hacerlo añadiendo las siguientes líneas al comienzo de su código

System.setProperty("http.proxyHost", "localhost"); 
System.setProperty("http.proxyPort", "8888"); 

o un conjunto de ellos a través de línea de comandos al iniciar el Java VM:

java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888 ... 
+0

El servidor de desarrollo contra el que estoy escribiendo utiliza un certificado autofirmado, así que he escrito clases para confiar en todos los certificados. Establecí las propiedades proxyHost y proxyPort, sin embargo, todavía no veo ningún tráfico de la aplicación a través de Fiddler. – Andrew

+0

Pude hacer que esto funcionara usando https en las propiedades y cambiando el host local a 127.0.0.1. – Andrew

+1

Mi cambio hizo posible ver la solicitud HTTP GET que usa HttpURLConnection. La solicitud POST usa HttpComponents de Apache y aún no puedo ver este tráfico. – Andrew

1

Con el cliente del embarcadero HTTP , la solución anterior no funciona. Sin embargo, los siguientes trabajos:

HttpClient httpClient = new HttpClient(); 
httpClient.setProxy(new Address("127.0.0.1", 8888)); 
httpClient.start(); 
+0

¿Sabe cómo? para hacer que funcione con HTTPS? – Arya

Cuestiones relacionadas