Pada tutorial tahap ini kita akan membuat panggilan Web Service, untuk itu kita akan menggunakan URL http://aplikasi-mobile.com/id/dummy/json, di mana URL ini akan menyediakan Web Service dengan format JSON, yang berisikan macam-macam Klub Sepakbola di English Premier League.
Lakukanlah navigasi ke http://aplikasi-mobile.com/id/dummy/json untuk melihat data yang ada. Untuk lebih jelas dalam melihat JSON data, cobalah navigasi ke https://jsonformatter.curiousconcept.com/ dan paste URL http://aplikasi-mobile.com/id/dummy/json ke dalam box di tengah, dan klik Process.
Jika anda memakai Google Chrome, anda bisa melakukan instalasi Chrome Extension JSONView yang akan memudahkan anda untuk melihat bentuk dari Data itu sendiri. Tutorial tentang JSON bisa anda dapatkan di sini.
Untuk pertama kalinya dalam tutorial ini kita akan menggunakan library dari luar. Untuk itu lakukanlah navigasi ke Gradle Scripts > build.gradle (Module : app), double-click saja, dan tambahkan line berikut ke dalam bagian dependencies :
compile 'com.loopj.android:android-async-http:1.4.4'
... sehingga menjadi seperti berikut :
Selanjutnya silakan klik Sync Now yang muncul pada toolbar di atas.
Tunggu sebentar sembari Gradle akan mengunduh library yang diperlukan. Setelah selesai kita akan buka MainActivity, tambahkan sebuah global variable ini pada class MainActivity :
ProgressDialog mDialog;
Setelah itu tambahkan kode ini pada onCreate untuk menginisiasi ProgressDialog kita :
//7. Tambahan untuk Progress dialog
mDialog = new ProgressDialog(this);
mDialog.setMessage("Sedang Mencari Klub");
mDialog.setCancelable(false);
... sehingga kode lengkapnya menjadi seperti berikut :
Terakhir, tambahkan fungsi berikut pada MainActivity :
public void query_data(){
//8.url web service yang dipakai , 1 pada bagian belakang menunjukan nomor halaman
String url = "http://aplikasi-mobile.com/id/dummy/json/1";
//9. Bikin Klien
AsyncHttpClient client = new AsyncHttpClient();
//10. Keluarkan Progress Dialoh
mDialog.show();
//11. Panggilan dijalankan
client.get(url,
new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject jsonObject) {
// 12. Begitu Sukses hilangkan progress dialog
mDialog.dismiss();
//13. Keluarkan toast
Toast.makeText(getApplicationContext(), "Sukses!", Toast.LENGTH_SHORT).show();
//14. Untuk sekarang JSON hanya kita keluarkan lewat log
Log.d("aplikasi-mobile.com", jsonObject.toString());
}
@Override
public void onFailure(int statusCode, Throwable throwable, JSONObject error) {
// 15. Dismiss the ProgressDialog
mDialog.dismiss();
//16. Keluarkan toast
Toast.makeText(getApplicationContext(), "Error: " +
statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show();
//17. Print Log
Log.e("aplikasi-mobile.com", statusCode + " " + throwable.getMessage());
}
});
}
Sekarang tambahkan :
query_data();
... pada metode
onCreate
.
Ini dikarenakan dalam mengakses Web Service anda membutuhkan koneksi
Internet, dan anda harus menambakan permission pada AndroidManifest
anda. Copy kode di bawah ini dan tambahkan ke dalam tag manifest pada AndroidManifest.xml anda.<uses-permission android:name="android.permission.INTERNET"/>
Manifest Anda akan menjadi seperti berikut :
Sekarang cobalah untuk melakukan run pada aplikasi anda.
Pada
permulaan aplikasi anda, akan muncul ProgressDialog dengan tulisan
"Sedang Mencari Klub". Perhatikan pada logcat yang muncul di belakang
emulator pada gambar. Setelah ProgressDialog selesai, akan muncul
tulisan data dari JSON yang kita panggil tadi. Dapat di lihat pada screenshot di bawah di bagian yang bewarna biru.
Metode pengeluaran log ini dipicu oleh kode
Log.d
pada metode onSuccess
, dan tulisan "Sukses!" dipicu oleh kode Toast
pada metode onSuccess
juga.
Selamat,
anda sudah bisa melakukan panggilan Web Service sederhana. Sebagai
bentuk pemahaman, alangkah baiknya jika anda mempelajari baris demi
baris dan memahami pengertiannya.
Untuk belajar lebih lanjut, kita akan masuk ke dalam pembuatan JSONAdapter Class.
0 komentar:
Posting Komentar