Mi aplicación está enviando solicitudes HTTP a algún servidor y quiero ver los datos reales que está enviando. Algunos detalles que me gustaría ver:
- Método de solicitud (GET / POST / PUT, etc.)
 - Tipo de contenido
 - Cuerpo
 
¿Cuál es la mejor y más simple forma de lograr esto?
                    
                        networking
                                
                    
                    
                        megas
fuente
                
                fuente

Respuestas:
Bueno, para todos esos fanáticos de tcpdump =)
¡CORRE TODOS ESTOS MANDOS COMO RAÍZ!
Obtener root en una terminal con
Para capturar los paquetes RAW ...
Esto captura todos los paquetes crudos, en todos los puertos, en todas las interfaces y escribir en un archivo,
/tmp/http.log.Ejecute su aplicación Obviamente, ayuda si no ejecuta ninguna otra aplicación que use HTTP (navegadores web).
Matar
tcpdumpPara leer el registro, use la
-Abandera y canalice la salida aless:La
-Abandera imprime la "carga útil" o el texto ASCII en los paquetes. Esto enviará la salida aless, puede subir y bajar la página. Para salirless, escriba Q.Cuando voy a Google, veo (en los paquetes sin formato):
tcpdumptiene un largo conjunto de opciones para refinar la recopilación de datos desde la especificación de interfaces de red a puertos a direcciones IP de origen y destino. NO puede descifrar (por lo que no funcionará con HTTPS).Una vez que sepa lo que le interesa, puede usar varias opciones
tcpdumppara registrar solo los datos de interés. La estrategia general es primero registrar todos los paquetes, revisar los datos sin procesar y luego capturar solo los paquetes de interés.Algunas banderas útiles (opciones):
Hay una curva de aprendizaje, tanto para usar
tcpdumpcomo para aprender a analizar los datos que recopila. Para leer más, sugiero encarecidamente eltcpdumpManual de Daniel Miessler con ejemplos .fuente
0 packets captured 0 packets received by filter 0 packets dropped by kernelPero abrí un montón de sitios en el navegador Chrome cuando tcpdump estaba monitoreando.tcpdump -i any -w /tmp/http.log &trabajó.Primera instalación
tcpflowdesde los repositorios oficiales de Ubuntu:Luego ejecute este comando para inspeccionar todas las solicitudes HTTP en el puerto estándar:
fuente
Te sugiero que pruebes Wireshark
Tenga en cuenta que Wireshark es bastante avanzado, por lo que puede llevar un poco de tiempo acostumbrarse. No lo he usado durante algunos años, pero aún así debería ser perfecto para lo que está buscando, si no demasiado lleno de características.
Puede encontrar información sobre Wireshark y cómo usarla en la página principal de Wireshark .
fuente
También es posible con el comando, que proporciona una salida ordenada, incluso para SSL:
fuente