Melihat Trafik HTTP Aplikasi Android Menggunakan Chucker

pradio ep
bhinneka-tech
Published in
2 min readSep 29, 2022
Image by Reto Scheiwiller from Pixabay

Saat proses testing suatu aplikasi ada saatnya kita sebagai developer atapun QA nantinya perlu melihat detail trafik setiap request dan response aplikasi kita untuk melakukan pengecekan.

Umumnya kita bisa melakukan debug, menggunakan log atau tools seperti postman, insomnia, ataupun API client lainnya. Namun sebetulnya ada cara yang lebih mudah yaitu dengan menggunakan Chucker.

Apa itu Chucker?

Chucker adalah OkHTTP inspector yang memungkinkan kita untuk melihat detail trafik setiap request dan response yang aplikasi kita lakukan.

Aplikasi yang menggunakan Chucker akan menampilkan notifikasi yang berisikan list ringkasan trafik HTTP(S), dan saat notifkasi tersebut di klik akan membuka Chucker UI yang berisikan list aktifitas HTTP(S) yang aplikasi lakukan yang dapat dilihat detailnya.

Contoh Penggunaan Chucker dari Dokumentasi Github

Menggunakan Chucker

Untuk menambahkan Chucker pada proyek, pertama kita harus menambahkan 2 baris dibawah pada bagian dependencies pada file build.gradle:

dependencies {
debugImplementation "com.github.chuckerteam.chucker:library:3.5.2"
releaseImplementation "com.github.chuckerteam.chucker:library-no-op:3.5.2"
}

Sebagai informasi, kita perlu menambahkan keduanya baik itu library dan library-no-op untuk memisahkan Chucker dari release build aplikasi kita.

Sedangkan untuk menggunakan Chucker sebagai interseptor pada OkHTTP client bisa dilakukan dengan cara berikut:

val client = OkHttpClient.Builder()
.addInterceptor(ChuckerInterceptor(context))
.build()

Fitur

Berdasarkan dokumentasi Github, saat ini Chucker memiliki beberapa fitur diantaranya:

  • Compatible with OkHTTP 4
  • API >= 21 compatible
  • Easy to integrate (just 2 gradle implementation lines).
  • Works out of the box, no customization needed.
  • Empty release artifact 🧼 (no traces of Chucker in your final APK).
  • Support for body text search with highlighting 🕵️‍♂️
  • Support for showing images in HTTP Responses 🖼
  • Support for custom decoding of HTTP bodies

Tips

Jika terdapat data sensitif pada header seperti Authorization, Token, dan lainnya yang tidak perlu muncul pada Chucker UI, kita dapat menyembunyikannya dengan menggunakan redactHeader(String) seperti code berikut:

val chuckerInterceptor = ChuckerInterceptor.Builder(context)
.redactHeaders("Authorization", "Token")

Referensi

Chucker Github Documentation

--

--