Menjadi seorang android frontend developer tentu perlu menguasai rest api client class untuk menangani Request http. Kalian bisa membuatnya sendiri atau menggunakan library yang sudah banyak berseliweran di internet sperti volley, retrofit dan yang paling powerfull menurut saya adalah fast android networking.
Oleh karena itu pada kesempatan kali ini, akan akan berbagi tutorial singkat bagaimana melakukan http request dan response menggunakan library fast android networking. Langsung saja ke tutorialnya.
advertisement
Instalasi
Disini kita akan mencoba instalasi library tersebut via gradle, silahkan buka app build.gradle kalian dan dan dibagian dependencies masukan kode berikut<uses-permission android:name="android.permission.INTERNET" />
Cara Implementasi
Untuk membuat intance objectnya kita perlu memanggil methode initialize dan memberikan parameter masukan berupa context dari activity yang menggunakannya. Masukan code ini di callback onCreate activity kalian
AndroidNetworking.initialize(getApplicationContext());
Yap sekarang Fast Android kalian siap digunakan.
Cara Menggunakan
Fast android networking dapat menangani Get Request, Post Response, Upload Request, Download Request dan Head Request. Data yang ditangani juga bisa langsung di parser kedalam bentuk object dengan mengimplementasikan library tambahan yaitu Jackson Parser dengan cara mengimplementasikan kode berikut di gradle.
implementation 'com.amitshekhar.android:jackson-android-networking:1.0.2'
Oke kita langsung saja ke tahap melakukan requesting ke servernya.
Melakukan Get Request
Contoh code dibawah ini jika datanyanya berupa JsonArray dan jika datanya berupa json object kalian tinggal mengganti metode getAsJSONArray menjadi getAsJSONObject, JSONArrayRequestListener menjadi JSONObjectRequestListener dan callback parameter JSONArray menjadi JSONObject.
AndroidNetworking.get("https://fierce-cove-29863.herokuapp.com/getAllUsers/{pageNumber}")
.addPathParameter("pageNumber", "0")
.addQueryParameter("limit", "3")
.addHeaders("token", "1234")
.setTag("test")
.setPriority(Priority.LOW)
.build()
.getAsJSONArray(new JSONArrayRequestListener() {
@Override
public void onResponse(JSONArray response) {
// do anything with response
}
@Override
public void onError(ANError error) {
// handle error
}
});
Jika kalian mengimplentasi Jakson Parser kalian juga bisa langsung mengambilnya dalam bentuk object
AndroidNetworking.get("https://fierce-cove-29863.herokuapp.com/getAnUserDetail/{userId}")
.addPathParameter("userId", "1")
.setTag(this)
.setPriority(Priority.LOW)
.build()
.getAsObject(User.class, new ParsedRequestListener<User>() {
@Override
public void onResponse(User user) {
// do anything with response
Log.d(TAG, "id : " + user.id);
Log.d(TAG, "firstname : " + user.firstname);
Log.d(TAG, "lastname : " + user.lastname);
}
@Override
public void onError(ANError anError) {
// handle error
}
});
Melakukan Post Request
Melakukan request post ke server ada empat cara yang bisa di lakuakan
- Mengirim parameter dan nilai secara langsung
AndroidNetworking.post("https://fierce-cove-29863.herokuapp.com/createAnUser") .addBodyParameter("firstname", "Deretcode.com") .addBodyParameter("lastname", "zainudin") .setTag("test") .setPriority(Priority.MEDIUM) .build() .getAsJSONObject(new JSONObjectRequestListener() { @Override public void onResponse(JSONObject response) { // do anything with response } @Override public void onError(ANError error) { // handle error } });
- Mengirim Parameter Dalam Bentuk Object
User user = new User(); user.firstname = "Deretcode.com"; user.lastname = "Zainudin"; AndroidNetworking.post("https://fierce-cove-29863.herokuapp.com/createUser") .addBodyParameter(user) // posting java object .setTag("test") .setPriority(Priority.MEDIUM) .build() .getAsJSONArray(new JSONArrayRequestListener() { @Override public void onResponse(JSONArray response) { // do anything with response } @Override public void onError(ANError error) { // handle error } });
- Mengirim Parameter Dalam Bentuk Json
JSONObject jsonObject = new JSONObject(); try { jsonObject.put("firstname", "Deretcode.com"); jsonObject.put("lastname", "zainudin"); } catch (JSONException e) { e.printStackTrace(); } AndroidNetworking.post("https://fierce-cove-29863.herokuapp.com/createUser") .addJSONObjectBody(jsonObject) // posting json .setTag("test") .setPriority(Priority.MEDIUM) .build() .getAsJSONArray(new JSONArrayRequestListener() { @Override public void onResponse(JSONArray response) { // do anything with response } @Override public void onError(ANError error) { // handle error } });
- Mengirim Data file
AndroidNetworking.post("https://fierce-cove-29863.herokuapp.com/postFile") .addFileBody(file) // posting any type of file .setTag("test") .setPriority(Priority.MEDIUM) .build() .getAsJSONObject(new JSONObjectRequestListener() { @Override public void onResponse(JSONObject response) { // do anything with response } @Override public void onError(ANError error) { // handle error } });
Melakukan Upload Request
Fast android networking memungkinkan kita bisa mengupload lebih dari satu file sekaligus
AndroidNetworking.upload(url)
.addMultipartFile("image_one",fileOne)
.addMultipartFile("image_two",fileTwo)
.addMultipartParameter("key","value")
.setPriority(Priority.HIGH)
.build()
.setUploadProgressListener(new UploadProgressListener() {
@Override
public void onProgress(long bytesUploaded, long totalBytes) {
// do anything with progress
}
})
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
// do anything with response
}
@Override
public void onError(ANError error) {
// handle error
}
});
Melakukan Download Request
AndroidNetworking.download(url,dirPath,fileName)
.setTag("downloadTest")
.setPriority(Priority.MEDIUM)
.build()
.setDownloadProgressListener(new DownloadProgressListener() {
@Override
public void onProgress(long bytesDownloaded, long totalBytes) {
// do anything with progress
}
})
.startDownload(new DownloadListener() {
@Override
public void onDownloadComplete() {
// do anything after completion
}
@Override
public void onError(ANError error) {
// handle error
}
});
Mengatur Request Header
Kita juga bisa mengatur data header request yang kita lakukan dengan fast android networking
AndroidNetworking.head("https://fierce-cove-29863.herokuapp.com/getAllUsers/{pageNumber}")
.addPathParameter("pageNumber", "0")
.addQueryParameter("limit", "3")
.build()
.getAsOkHttpResponse(new OkHttpResponseListener() {
@Override
public void onResponse(Response response) {
// do anything with response
if (response.isSuccessful()) {
Log.d(TAG, "Headers :" + response.headers());
}
}
@Override
public void onError(ANError anError) {
// handle error
}
});
Mungkin itu saja yang bisa saya bagikan kepada sobat sekalian, sebenarnya masuh banyak fitur-fitur lainya dari library yang satu ini. Mungkin kalian bisa langsung mempelajarinya lewat git repositorynya di link ini : Git Fast Android Networking.
advertisement
Sekian dulu tutorial frontend android kali, ini terimakasih sudah mampir. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, kalau ada pertanyaan silahkan tulis di kolom komentar. Good Luck!
Silahkan berkomentar dengan baik dan bijak!