Melihat Trafik HTTP Aplikasi Android Menggunakan Chucker
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.
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")