android-async-http : Library Implementasi Android Asynctask Http Client Mudah

Android asynctask merupakan menjalankan proses di background pada android. Terutama ketika request http client. Android sudah memiliki class asynctask tersendiri, namun tidak menjadi satu dengan request http client, karena untuk melakukan request http client harus berjalan di background. android-async-http merupakan library yang memudahkan proses asynctask sekaligus request http client.

android-async-http

android-async-http dikembangkan diatas library httpclient apache. Sejumlah fitur http client sudah include didalamnya, sehingga memudahkan ketika melakukan request.Fitur tersebut seperti onStart(), onSuccess(), onFailure(), onRetry(). Selain itu berikut sejumlah fitur yang dimiliki Loopj :

  • Menggunakan HttpClient versi 4.3.6, dibandingkan menggunakan DefaultHttpClient bawaan android Using upstream HttpClient of version 4.3.6 instead of Android provided DefaultHttpClient
  • Kompatibel dengan Android API 23 ke atas
  • Melakukan request HTTP secara Make asynchronous dan menangani respon secara  anonymous callbacks
  • HTTP request yang dilakukan di belakang thread UI
  • Disertai builder untuk request GET/POST
  • Dapat melakukan request upload tanpa library tambahan
  • Streamed JSON uploads with no additional libraries
  • Handling circular and relative redirects
  • Ukuran library kecil, hanya 90kb
  • Bisa melakukan otomatis request berulang untuk optimasi koneksi mobile
  • Komunikasi protokol binari dengan 
    1
    BinaryHttpResponseHandler
  • Built-in parsing respon ke JSON dengan 
    1
    JsonHttpResponseHandler
  • Menyimpan respon ke file dengan 
    1
    FileAsyncHttpResponseHandler
  • Integrasi dengan  Jackson JSON, Gson atau library JSON lainnya dengan 
    1
    BaseJsonHttpResponseHandler
  • Mendukung parser SAX dengan 
    1
    SaxAsyncHttpResponseHandler
  • Mendukung bahasa dan content encodings, bukan hanya UTF-8

Instalasi

Tambahkan library pada build.gradle seperti :

1
2
3
dependencies {
compile 'com.loopj.android:android-async-http:1.4.9'
}

Implementasi

Cukup dengan membuat object AsyncHttpClient, dan sudah termasuk fungsi request didalamnya.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
AsyncHttpClient client = new AsyncHttpClient();
client.get("https://www.google.com", new AsyncHttpResponseHandler() {

@Override
public void onStart() {
// called before request is started
}

@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
// called when response HTTP status is "200 OK"
}

@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
}

@Override
public void onRetry(int retryNo) {
// called when request is retried
}
});

Untuk menangkap respon string ketika sukses, maka pada method onSuccess() ditambahkan seperti :

Tulisan Lain   DHTMLX Touch – JavaScript Framework untuk Mobile dan Touch Devices

String str = new String(responseBody, “UTF-8”);

Melakukan Request POST

untuk melakukan request post dengan menggunakan tambahan class RequestParam, seperti :

1
RequestParams params = new RequestParams("single", "value");

atau

1
2
3
RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");

lalu pada AsyncHttpClient

1
client.post(restApiUrl, params, responseHandler);

Menggunakan Basic Auth

Juga bisa mengimplementasikan request yang memerlukan basic auth, seperti :

1
2
3
AsyncHttpClient client = new AsyncHttpClient();
client.setBasicAuth("username","password/token");
client.get("https://example.com");

untuk tahu lebih banyak bisa baca di http://loopj.com/android-async-http/ atau https://github.com/loopj/android-async-http

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *