THƯ VIỆN VOLLEY TRONG ANDROID - Redbowlblog

I. Giới thiệu về thư viện Volley

  • Volley là một thư viện mạng( library network) được Google giới thiệu năm 2013 để quản lý các request Network và lưu trữ  những response trên các ứng dụng Android mà không cần các Developer viết nhiều code như trước. Các tools bên trong Volley cho phép cùng một lúc thục hiện nhiều request trên các thread (luồng xử lý dữ liệu) khác nhau với các mức độ ưu tiên (priority) khác nhau. Tất cả request được thực hiện và lưu trữ trong bộ nhớ cache giúp cho việc reload lại dữ liệu nhanh hơn. Nó đặc biện hữu dụng với những dữ liệu như JSON, Image, String,… Nhưng lại không phải là ý tưởng tốt cho việc sử dụng với các dữ liệu lớn như music hay movies.
  • Những class request có trong thư viện Volley này bao gồm : jsonObjectRequest, jsonArrayRequest, StringRequest, ImageLoader kết với các constructor đi kèm như : POST, GET, DELETE, PUT, COPY,…

II. Demo application liên quan tới thư viện Volley

– Mô tả về ứng dụng : Ứng dụng này sẽ tiến hành lấy thông tin đăng nhập của người dùng sau đó nó sẽ gửi request tới sever và sau đó nhận phản hồi từ sever trả về dưới dạng file JSON và đọc file JSON đó kiểm tra status xem có đúng là tài khoản người dùng hay không nếu đúng thì cho phép đăng nhập vào phía bên trong ( tức sẽ chuyển màn hình khác để tiếp tục thao tác ). Nếu sai thì hiện thông báo. Nhưng ở bài này chúng ta dừng lại ở việc biết cách sử dụng thư viện mạng volley để lấy file JSON về thôi. Ở bài tiếp theo mình sẽ hướng dẫn cụ thể cho các bạn cách đọc file JSON.

– Chi tiết về ứng dụng :

1

– Nội dung của file activity_main.xml dùng để thiết kế màn hình như trên :

2

3

Tiếp theo ta cần phải xây dựng một class để có thể kết nối giữa các client với server ở đây mình đặt là HttpClientSSL :

Bên trong class này chúng ta cần thiết lập một số phương thức cần thiết như hình bên dưới để phục vụ cho việc thiết lập các thông số khi giao tiếp với server ( các bạn chú ý đọc chú thích để có thể hiểu cặn kẽ hơn ) :

4

Nhưng ngoài ra nếu bạn muốn gửi request tới server mà có giao thức HTTPS  thì server sẽ yêu cầu một chứng thực sử dụng chữ ký số hay nói cách khác là phiên giao tiếp của bạn sẽ được được mã hóa thành một dãy các kí tự theo tiêu chuẩn chứng thực khóa công khai phổ biến nhất hiện này là X.509 do ITU-T ban hành để có thể giao tiếp với server điều này nhằm để đảm bảo an toàn cho gói thông tin dữ liệu bạn gửi lên server không bị đánh cắp bởi tin tặc trong quá trình truyền dữ liệu đến server chính vì lý do đó mà giao thức HTTPS an toàn hơn nhiều so với HTTP.

5

6

7

8

Mục đích của class này là nhằm đảm bảo rằng tất cả đã được chứng thực khóa công khai CA và theo tiêu chuẩn X.509

Đến đây coi như các công đoạn thiết lập kết nối với server đã xong. Và công việc còn lại chỉ là việc code để tiếp hành gửi các yêu cầu như POST, GET, PUT, … tới server và nhận lại sự phản hồi từ server bằng file JSON

Trong class MainActivity :

Ở đây mình sẽ đi thường vào vấn đề trọng tâm như đã nếu ở trên luôn còn các thao tác khởi tạo và ánh xạ của các control thì các bạn có thể coi ở mấy tutorials trước đó.

9

  • ResponseListener : là nơi bạn sẽ nhận dữ liệu trả về từ server khi request kết thúc.
  • ErrorListener : Nơi bạn nhận lại những problem bên trong request của bạn từ server.
  • getParams() : phần này là phần thông tin sẽ được gửi lên server
  • getHeaders() : thiết lập để yêu cầu server chấp nhận cho lấy dữ liệu mà server trả về dưới dạng file JSON.
  • setRetryPolicy() : Thiết lập một policy để thử lại trong trường hợp SocketTimeout & ConnectionTimeout Exceptions. Volley sẽ thử lại cho bạn nếu bạn đã thiết lập policy rồi.

Và một điều cuối cùng hết sức quan trong bạn cần phải làm đó là việc thiết lập quyền truy cập internet cho ứng dụng bằng cách thiết lập thẻ như hình bên dưới trong file AndroidManifest.xml :

10

– Ngoài ra bạn cũng cần phải biết một số loại Status-Code thông dụng mà server trả về cho client như sau:

1xx: information Message: các status code này chỉ có tính chất tạm thời, client có thể không quan tâm.

2xx Successful: khi đã xử lý thành công request của client, server trả về status dạng này:

  • 200 OK: request thành công.
  • 202 Accepted: request đã được nhận, nhưng không có kết quả nào trả về, thông báo cho client tiếp tục chờ đợi.
  • 204 No Content: request đã được xử lý nhưng không có thành phần nào được trả về.
  • 205 Reset: giống như 204 nhưng mã này còn yêu câu client reset lại document view.
  • 206 Partial Content: server chỉ gửi về một phần dữ liệu, phụ thuộc vào giá trị range header của client đã gửi.

3xx Redirection: server thông báo cho client phải thực hiện thêm thao tác để hoàn tất request:

  • 301 Moved Permanently: tài nguyên đã được chuyển hoàn toàn tới địa chỉ Location trong HTTP response.
  • 303 See other: tài nguyên đã được chuyển tạm thời tới địa chỉ Location trong HTTP response.
  • 304 Not Modified: tài nguyên không thay đổi từ lần cuối client request, nên client có thể sử dụng đã lưu trong cache.

4xx Client error: lỗi của client:

  • 400 Bad Request: request không đúng dạng, cú pháp.
  • 401 Unauthorized: client chưa xác thực.
  • 403 Forbidden: client không có quyền truy cập.
  • 404 Not Found: không tìm thấy tài nguyên.
  • 405 Method Not Allowed: phương thức không được server hỗ trợ.

5xx Server Error: lỗi của server:

  • 500 Internal Server Error: có lỗi trong quá trình xử lý của server.
  • 501 Not Implemented: server không hỗ trợ chức năng client yêu cầu.
  • 503: Service Unavailable: Server bị quá tải, hoặc bị lỗi xử lý.

– Một số hình ảnh sau khi hoàn tất demo :

  • Trường hợp đăng nhập thành công :

11

12

Ở trường hợp này mình đã tiến hành bóc tách dữ liệu từ file JSON được trả về từ server + sử dụng kĩ thuật truyền tham số dữ các màn hình nên như các bạn đã thấy ở trên sẽ hiện ra chuỗi “Hello” + tên người dùng ( từ trong file JSON)

  • Trường hợp sai : thì sẽ hiện bảng thông báo cho người dùng biết 13

Share this:

  • Twitter
  • Facebook
Like Loading...

Related

Từ khóa » Thư Viện Volley Trong Android