Maksud dan tujuan dari article ini adalah sebagai pembanding pilihan setelah sebelumnya saya menulis artikel tentang cara request http menggunakan volley
Untuk menggunakan OkHttp langkah awal yang harus dilakukan adalah menambahkan dependency okhttp ke file app/build.gradle anda
compile 'com.squareup.okhttp3:okhttp:3.6.0'
dan jangan lupa untuk menambahkan permission internet,
code yang saya gunakan tidak akan jauh berbeda dengan artikel sebelumnya yang menggunakan volley, fungsi utamanya adalah di method ambilData web berikut
yang pertama adalah membuat object Request
dari object request ini kita bisa menentukan
- url
- header
- mengatur http method yang digunakan (default menggunakan GET)
untuk lebih lengkapnya mengenai request builder bisa mengunjungi halaman berikut
selanjutnya memproses object Request ke httpclient,
httpClient.newCall(request).enqueue(new Callback());
pada baris diatas maksudnya adalah "lakukan call dengan request dan lakukan secara async", tipe http call tersebut masuk kedalam tipe async, karena method yang digunakan adalah enqueue, okhttp support 2 tipe call async dan sync, untuk tipe async tinggal merubah enqueue menjadi execute
httpClient.newCall(request).execute(new Callback());
selanjutnya tinggal memproses data didalam callback okhttp, callbacknya standar, ada 2 onResponse dan onFailure, yang perlu dipahami adalah di callback onResponse, untuk mengakses response string hasil dari okhttp bisa menggunakan cara berikut
final String result = response.body().string();
yang perlu diperhatikan method body().string() ini hanya bisa diakses sebanyak 1 kali saja, karena setelah diakses seperti ini maka okhttp akan close data dari string, maka apabila kita melakukannya lagi akan terkena exception. Selanjutnya untuk passing data ke UI, perlu menambahkan runOnUiThread agar tidak terkena exception.
DOWNLOAD SOURCE
Artikelnya bagus bang, penjelasanya super duper mudah dipahamai untuk awam semperti saya.
ReplyDeleteKalo boleh, request dong bang tentang lib hawk (orhanobut) trims
bagus artikelnya, bisa dicoba, kunjungi situs kami juga yak :3
ReplyDelete