Cómo capturar decenas de miles de datos de productos en teléfonos móviles de JD.com, esta herramienta puede ayudarle
En comparación con Fiddler, Charles es más poderoso y tiene mejor soporte multiplataforma. Es por eso que elegimos a Charles como nuestra principal herramienta de captura de paquetes móviles para analizar paquetes de aplicaciones móviles para ayudar en nuestros esfuerzos de captura de datos de aplicaciones.
1. Objetivos de esta sección
En esta sección tomamos la aplicación JD.com como ejemplo, usamos Charles para capturar los paquetes de datos de la red durante la ejecución de la aplicación y luego vea los contenidos específicos de Solicitud y Respuesta para comprender cómo usar Charles.
II. Preparación
Asegúrese de que Charles se haya instalado correctamente y que el servicio de proxy se haya activado. El teléfono móvil y Charles están en la misma LAN, y que el proxy de Charles y CharlesCA. Se ha configurado el certificado.
3. Principio
Primero, Charles se ejecuta en su propia PC. Cuando Charles se esté ejecutando, abrirá un servicio proxy en el puerto 8888 de la PC. Este servicio es en realidad un HTTP/. Proxy HTTPS.
Asegúrese de que el teléfono y la PC estén en la misma LAN, podemos usar un emulador de teléfono para conectarnos a través de una red virtual, o usar un teléfono y una PC reales para conectarnos a través de una red inalámbrica.
Configure el proxy del teléfono móvil en la dirección del proxy de Charles, de modo que los paquetes de datos para que el teléfono móvil acceda a Internet fluyan a través de Charles, y Charles los reenviará al servidor real. El servidor devuelve los paquetes de datos, Charles los reenviará. En el teléfono, Charles actúa como intermediario y se pueden capturar todos los paquetes de tráfico, por lo que se pueden capturar todas las solicitudes y respuestas HTTP. Al mismo tiempo, Charles tiene derecho a modificar solicitudes y respuestas.
4. Capturar paquetes de datos
El estado inicial de la interfaz de ejecución de Charles se muestra en la siguiente figura.
Charles siempre monitoreará los paquetes de datos de la red que ocurren en la PC y el teléfono móvil. Los paquetes de datos capturados se mostrarán a la izquierda. A medida que pase el tiempo, se capturarán más y más paquetes. lista a la izquierda Habrá cada vez más contenido.
Como puede ver, el lado izquierdo de la imagen muestra el sitio de solicitud que Charles ha capturado. Podemos hacer clic en cualquier entrada para ver los detalles de la solicitud correspondiente, incluida Solicitud, Respuesta, etc.
A continuación, para borrar la captura de Charles, haga clic en el botón de la escoba a la izquierda para borrar todas las solicitudes capturadas actualmente. Luego haga clic en el segundo botón de escucha y asegúrese de que esté activado, lo que significa que Charles está escuchando el flujo de datos de la red de la aplicación, como se muestra en la imagen a continuación.
En este punto, abra JD.com en su teléfono móvil y asegúrese de configurar el agente Charles y configurar el certificado CA con anticipación; de lo contrario, no tendrá ningún efecto.
Abra cualquier producto, como iPhone, y luego abra su página de revisión de producto, como se muestra en la siguiente figura.
Continúe abriendo y cargando comentarios y podrá ver que Charles capturó todas las solicitudes de red que ocurrieron dentro de la aplicación JD.com durante este proceso, como se muestra en la siguiente figura.
Aparece un enlace a api.m.jd.com en la lista de la izquierda y parpadea, por lo que es probable que Charles detecte la solicitud actual de la aplicación para obtener datos de revisión. Hacemos clic para expandirlo y continuamos desplazándonos hacia arriba para actualizar los comentarios. A medida que nos desplazamos hacia arriba, se registra otra solicitud de red y la solicitud del nuevo paquete se identifica como una solicitud de comentario.
Para verificar que esto es correcto, hagamos clic para ver los detalles de una de las entradas. Después de cambiar a la pestaña Contenido, encontramos algunos datos JSON y la inspección reveló que había un campo commentData cuyo contenido era consistente con los comentarios que vimos en la aplicación, como se muestra en la imagen a continuación.
En este punto podemos determinar que la interfaz correspondiente a la solicitud es la interfaz para obtener reseñas de productos. De esta manera, capturamos con éxito el contenido de la solicitud y la respuesta que ocurrieron durante el proceso de actualización pull-up.
5. Análisis
Ahora analiza los detalles de la solicitud y la respuesta. Primero, puede regresar a la pestaña Descripción general, como se muestra en la imagen a continuación, que muestra la URL de la interfaz solicitada, seguida del estado de la respuesta Código de estado, método de solicitud Método, etc.
Los resultados son similares a los capturados inicialmente en la web utilizando herramientas de desarrollo del navegador.
A continuación, haga clic en la pestaña Contenido para ver los detalles de la solicitud y la respuesta.
La mitad superior de la pestaña muestra información sobre la solicitud y la mitad inferior muestra información sobre la respuesta. Por ejemplo, para Reqeust, cambiamos a la pestaña Encabezados para ver la información de los encabezados de la solicitud; para Respuesta, cambiamos a la pestaña JSON TEXT para ver la información del cuerpo de la respuesta. El contenido tiene el formato que se muestra a continuación.
Dado que la solicitud es una solicitud POST, también debemos prestar atención a la información del formulario POST y cambiar a la pestaña del formulario para verla, como se muestra en la siguiente figura.
De esta manera, hemos capturado con éxito la solicitud y la respuesta de la interfaz de anotación en la aplicación y podemos ver los datos JSON devueltos por la Respuesta.
En cuanto a otras aplicaciones, también podemos utilizar este método para el análisis. Si podemos analizar directamente el patrón de las URL y los parámetros de solicitud, podemos utilizar directamente la simulación del programa para rastrear en lotes.
6. Reenviar
Charles también tiene una función poderosa que puede modificar la solicitud capturada y enviar la solicitud modificada. Haga clic en el botón modificar en la parte superior y habrá un enlace adicional que comienza con el ícono de edición en la lista de la izquierda, lo que significa que estamos modificando la solicitud correspondiente al enlace, como se muestra en la siguiente figura.
Podemos eliminar un campo del formulario, como el campo de socio, y hacer clic en "Eliminar", lo que modificará los datos del formulario que llevaba la solicitud original, y luego hacer clic en el botón "Ejecutar" en la abajo para ejecutar La solicitud modificada se muestra en la siguiente figura.
Puede ver que los resultados de la solicitud en la interfaz aparecen nuevamente en la lista de la izquierda y el contenido permanece sin cambios, como se muestra en la siguiente figura.
Eliminar el campo de socio del formulario no tiene ningún efecto, por lo que el campo es irrelevante.
Con esta función, podemos usar Charles fácilmente para depurar. Podemos probar el estado de respuesta de diferentes solicitudes modificando parámetros, interfaces, etc., y podemos saber qué parámetros son necesarios y cuáles no. necesario, y cuáles son las reglas para los parámetros, y finalmente obtener la interfaz y los parámetros más simples para usar al llamar al programa de simulación.
7. Conclusión Conclusión
Lo anterior es el proceso de análisis de solicitudes de aplicaciones a través de la captura de paquetes Charles. A través de Charles, capturamos con éxito los paquetes de red que fluyen a través de la aplicación, capturamos los datos originales, modificamos la solicitud original y volvimos a emitir la solicitud modificada para probar la interfaz.
Después de comprender la información específica de la solicitud y la respuesta, si podemos analizar el patrón de la URL y los parámetros de la solicitud, ¡podemos usar directamente el programa para simular la captura por lotes!
Los rastreadores de teléfonos móviles son muy interesantes y pueden capturar una gran cantidad de datos. Por supuesto, también hay mucho que aprender. También te escribiré algunos casos reales e interesantes más adelante.