Android

Android Networking: Retrofit – Có thể bạn biết rồi!

Ở 2 bài viết trước, mình đã lần lượt giới thiệu về Thư Viện VolleyAsyncTask để quản lý việc thao tác với Web Service. Ở bài viết này, mình sẽ giới thiệu các bạn một trong những thư viện hiệu quả dễ dùng nhất – Retrofit.

Retrofit là gì?

Theo định nghĩa của Square (nhà phát triển Retrofit):

A type-safe HTTP client for Android and Java

Retrofit là một HTTP Client cho Java và Android được phát triển bởi Square. Retrofit giúp dễ dàng kết nối đến một dịch vụ REST trên web bằng cách chyển đổi API thành Java Interface.

Giải thích theo kiểu Farmer thì Retrofit là một thư viện hỗ trợ giao tiếp giữa Client và Web Service.

Sử dụng Retrofit trong Android

Để sử dụng được Retrofit trong android, config như sau:

implementation ‘com.squareup.retrofit2:retrofit:2.4.0’
implementation ‘com.squareup.okhttp3:okhttp:3.11.0’

Giống như hầu hết các phần mềm mã nguồn mở khác, Retrofit được xây dựng dựa trên một số thư viện mạnh mẽ và công cụ khác. Đằng sau nó, Retrofit làm cho việc sử dụng OkHttp để xử lý các yêu cầu trên mạng. Ngoài ra, từ Retrofit2 không tích hợp bất kỳ một bộ chuyển đổi JSON nào để phân tích từ JSON thành các đối tượng Java. Thay vào đó nó đi kèm với các thư viện chuyển đổi JSON sau đây để xử lý điều đó:

  • Gson: com.squareup.retrofit:converter-gson
  • Jackson: com.squareup.retrofit:converter-jackson
  • Moshi: com.squareup.retrofit:converter-moshi

Trong project này, mình sử dụng Gson để phân tích JSON thành các POJOs:

implementation ‘com.google.code.gson:gson:2.8.5’
implementation ‘com.squareup.retrofit2:converter-gson:2.1.0’

Bonus: Sử dụng web này để tự động phân tích JSON thành các POJOs

Bình tĩnh, sắp sử dụng được rồi!

Okie, sau khi add các thư viện cần thiết sử dụng trong project, chúng ta cần tạo một Retrofit Client, class này dùng để Set Time Out cho request, cài đặt Base Url, chọn thư viện để phân tích JSON thành POJOs.

Tiếp tục tạo một Retrofit Instance:

Cấu hình Endpoints:

Sẵn sàng để sử dụng

Giờ chỉ cần đặt đoạn code này vào nơi xử lý business logic, có thể là Controller, Presenter,.. tùy vào kiến trúc của dự án.

Enqueue là gì?

enqueue()là một phương thức xử lý bất đồng bộ các yêu cầu và callback lại cho ứng dụng khi nó xử lý hoàn tất. Vì yêu cầu này là bất đồng bộ, nên Retrofit xử lý nó trên Background Thread để UI Thread không bị ảnh hưởng.

Để sử dụng enqueue(), bạn phải implement hai phương thức callback:

  • onResponse(): được gọi khi xử lý success
  • onFailure(): được gọi khi xử lý thất bại

Kiểm tra kết quả

Chạy ứng dụng lên và kiểm tra thành quả nào. Và đừng quên cấp quyền truy cập cho ứng dụng ở file Manifests.xml.

<uses-permission android:name=”android.permission.INTERNET”/>

Và đó là nó. Cảm ơn các bạn đã kiên nhẫn đồng hành cùng tôi đến cuối bài viết này. Hy vọng bài viết sẽ giúp ích cho bạn phần nào. Nếu muốn tìm hiểu nhiều hơn về Retrofit hãy ghé thăm website chính thức: tại đây.

Xem project demo tại đây

Được gắn thẻ , , ,

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *