Volley merupakan library yang digunakan untuk memanggil API web dengan sangat mudah. Jadi kita tidak perlu membuat HTTP Connection sendiri, namun tinggal menggunakan method yang ada dalam library Volley. Volley merupakan library yang dibuat oleh Google dan mudah cara penggunaanya. Hanya dibutuhkan kira-kira 200-300 ms untuk memanggil API web. Secara default Volley menggunakan asynchronous, sehingga kita tidak memerlukan AsyncTask lagi.
Kelebihan library ini meliputi :
- Automatic scheduling of network requests.
- Beberapa koneksi jaringan bersamaan.
- Manajemen caching
- Support prioritas Request.
- Cancel Request API.
- Mudah dicustom.
- Debugging dan tracing tools.
Berikut adalah Class penting dalam libray ini :
- RequestQueue: Antrian yang berisi Request Network / HTTP yang perlu dibuat.
- Request: Class dasar yang berisi informasi terkait jaringan seperti Metode HTTP.
- StringRequest: HTTP Request dengan respon String.
- JsonObjectRequest: Permintaan HTTP dengan respon JSONObject.
Untuk menggunakan Volley, kita harus menambahkan permission android.permission.INTERNET agar dapat terhubung ke jaringan.
Update build.gradle file
1 2 3 4 |
dependencies { ... compile 'com.android.volley:volley:1.0.0' } |
1 2 3 |
//Inisialisasi RequestQueue. RequestQueue queue = Volley.newRequestQueue(this); String url = "Masukan url disini"; |
Berikut ini adalah contoh penggunaan method GET dengan respone JSONObject.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// Persiapan the Request dengan respon JSONObject JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { // menampilkan response pada logcat Log.d("Response", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //menampilkan error pada logcat Log.d("Error.Response", response); } } ); // menambahkan request ke RequestQueue queue.add(getRequest); |
Making POST Requests
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
StringRequest postRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // menampilkan respone Log.d("Response", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // error Log.d("Error.Response", response); } } ) { @Override protected Map<String, String> getParams() { // Menambahkan parameters post Map<String, String> params = new HashMap<String, String>(); params.put("parameter1", "value1"); params.put("parameter2", "value2"); return params; } }; queue.add(postRequest); |
Berikut ini adalah contoh penggunaan method PUT dengan respone String dan 2 parameter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
StringRequest putRequest = new StringRequest(Request.Method.PUT, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // menampilkan response pada logcat Log.d("Response", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // menampilkan error Log.d("Error.Response", response); } } ) { @Override protected Map<String, String> getParams() { //menambahkan parameter Map<String, String> params = new HashMap<String, String> (); params.put("parameter1", "value1"); params.put("parameter2", "value2"); return params; } }; queue.add(putRequest); |
Making DELETE Requests
Berikut ini adalah contoh penggunaan method DELETE dengan respone String dan 2 parameter.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
StringRequest deleteRequest = new StringRequest(Request.Method.DELETE, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // menampilkan response Log.d("Response", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // menamoilkan error. Log.d("Error.Response", response); } } ); queue.add(deleteRequest); |
kang kok saya bermasalah di OnErrorResponse
variabel responsenya tidak ada tp klo saya masukin parameter yang di method onErrorResponse malah error juga krna kan bukan String #help
thanks bro, br pertama kali nyoba volley.. asik juga, dah kaya $.ajax jquery