Sử dụng thư viện Android Networking để lấy dữ liệu JSON từ server
Bài đăng này đã không được cập nhật trong 3 năm
Hiện nay, JSON là một kiểu mô tả dữ liệu được sử dụng phổ biến, nhiều công ty sử dụng JSON để gửi dữ liệu cho các ứng dụng Android, iOS hay WindowPhone. Để có thể đọc được dữ liệu dạng JSON cho ứng dụng Android có rất nhiều cách, bạn có thể sử dụng apache (hiện nay không còn phổ biến nữa) hoặc sử dụng các thư viện như: Volley (google), Retrofit (Square), ... Hôm nay mình xin giới thiêu một thư viện mà mình hay sử dụng vì sự đơn giản, dễ hiểu, dễ sử dụng của nó. Đó là thư viện Android Networking. Chúng ta hãy thử tạo một project Android với công cụ Android Studio để thấy được sự đơn giản của thư viện trên nhé
1. Bước 1: Tạo project Android
2. Bước 2: Thêm quyền INTERNET trong manifest
<uses-permission android:name="android.permission.INTERNET" />
3. Bước 3: Add thư viện vào project
Đặt vào dependencies của file app/build.gradle:
compile 'com.amitshekhar.android:android-networking:0.3.0'
4. Bước 4: Sử dụng thư viện
Mình có chuẩn bị một link dữ liệu dạng JSON sau http://android-samsung.herokuapp.com/api/category. Chúng ta sẽ đọc dữ liệu này với thư viện trên.
Mở file MainActivity, thêm vào hàm onCreate():
AndroidNetworking.initialize(getApplicationContext());
AndroidNetworking.get("http://android-samsung.herokuapp.com/api/category")
.build()
.getAsString(new StringRequestListener() {
@Override
public void onResponse(String response) {
Toast.makeText(getBaseContext(), response, Toast.LENGTH_LONG).show();
}
@Override
public void onError(ANError anError) {
Toast.makeText(getBaseContext(), anError.toString(), Toast.LENGTH_LONG).show();
}
});
5. Bước 5: Chạy thử project và xem kết qủa
Ở đây mình sử dụng method là get(), dữ liệu callback là String, khi run ứng dụng thì sẽ Toast ra một dòng kết qủa là dữ liệu JSON nếu thành công còn khi thất bại sẽ Toast ra lỗi.
Kết qủa
Bạn thấy rất đơn giản phải không?
Bạn có thể xem thêm thông tin chi tiết tại
https://github.com/amitshekhariitbhu/Fast-Android-Networking
All rights reserved