Examine el tráfico de red de Ktor en Android con Chucker | de Yves Kalumé | marzo 2023

Si está trabajando en una aplicación que interactúa con un backend, seguramente necesita saber si todas sus solicitudes se ejecutan correctamente. En caso de error, debe conocer tanto la solicitud como la respuesta del servidor para solucionar el problema. Todo lo que tiene que hacer es conectar su dispositivo a Android Studio y ver los registros. Pero el problema se complica cuando, por ejemplo, la aplicación se envía a miembros de otro equipo para que la prueben y esas personas no tienen las habilidades necesarias para depurar la aplicación. Gracias a Chucker, puede verificar el tráfico de red de su aplicación y ver los datos necesarios sin conectar su teléfono inteligente a su IDE. Antes de comenzar, debemos instalar todas las dependencias necesarias // ktorimplementation(«io.ktor:ktor-client-core:2.2.3»)implementation(«io.ktor: ktor-client-content-negotiation:2.2.3 «) implementación(«io.ktor:ktor-client-okhttp:2.2.3»)// chuckerdebugImplementation(«com.github.chuckerteam.chucker:library:3.5.2» )releaseImplementation(«com.github.chuckerteam.chucker :library -no-op:3.5.2»)Ktor tiene muchas otras dependencias, puede tener más dependiendo de sus necesidades, pero dado que Chucker solo funciona con Okhttp, necesita usar Die Bien, motor httppor lo tanto tenemos la dependencia ktor-client-okhttp.

Los datos generados y almacenados al usar Chucker pueden contener información confidencial, como encabezados de autorización o cookies y el contenido de los cuerpos de solicitud y respuesta. Está diseñado para su uso durante el desarrollo y no en compilaciones de lanzamiento u otras implementaciones de producción. Por otro lado, no desea comentar el código que agregó para usar Chucker antes de compilar la variante de lanzamiento.

Chucker tiene una variante «sin operación» de la biblioteca que nos permite separarla de la compilación de lanzamiento. // Establecer interceptorval chuckerInterceptor = ChuckerInterceptor.Builder(context).collector(ChuckerCollector(context)).maxContentLength( 250000L). redactHeaders(emptySet()).alwaysReadResponseBody(false) ) {json(Json {isLenient = trueignoreUnknownKeys = trueprettyPrint = true})}}Chucker nos proporciona el ChuckerInterceptor que se puede agregar como un interceptor OkHttp que extrae todos estos eventos de su aplicación y proporciona una interfaz de usuario para explorar y compartir su contenido. Y eso es todo, nuestras solicitudes ahora son monitoreadas automáticamente por Chucker. // Así de divertido es detener una solicitud getRemoteData(): GiphyHttpResponse {return httpClient.get(««).body()}Las aplicaciones que usan Chucker muestran un notificación Muestra un resumen de la actividad HTTP en curso. Al tocar la notificación, se iniciará la interfaz de usuario completa de Chucker.chucker en acciónLas aplicaciones pueden opcionalmente suprimir la notificación e iniciar la interfaz de usuario de Chucker directamente desde su propia interfaz.

Manejo del permiso de notificación

A partir de Android 13, sus aplicaciones deben solicitar el permiso POST_NOTIFICATION para que el usuario muestre notificaciones. Debido a que Chucker también muestra notificaciones para ver la actividad de la red, deberá editar la solicitud de permiso según las capacidades de su aplicación. Sin este permiso, Chucker realiza un seguimiento de la actividad de la red, pero no hay notificaciones en los dispositivos que ejecutan Android 13 y versiones posteriores. Chucker es muy fácil de usar y muy eficiente en la depuración cuando se realizan llamadas de red con el cliente OkHttp. Para ir más lejos puedes consultar los siguientes enlaces:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.