Bài 35-Truy Cập NodeJS RESTful Web Services Với Thư Viện Volley ...

Đây là bài học cuối cùng, kết thúc chuỗi series bài học về NodeJS- MongoDB. Toàn bộ bài học được tổng hợp trong trang này.

Có rất nhiều kỹ thuật để truy cập các WEB API, tùy vào nhu cầu của lập trình viên mà ta lựa chọn các thư viện khác nhau. Ở đây dân chúng hay bàn luận về Volley Retrofit cũng như so sánh phân vân nên chọn cái nào? mấy câu hỏi này bạn tự Google search nha. Bạn chỉ cần biết là ta có thêm 2 thư viện Volley Retrofit để truy cập WEB API là đủ rồi, còn cụ thể như thế nào thì cứ hỏi bác Google là OK á.

Trong bài này Tui chỉ giới thiệu sơ Volley để lấy danh sách Product thôi nha (chi tiết bạn xem trên Blog của Alif’s Blog để áp dụng cho các Web API còn lại, nó vô cùng đơn giản nhưng Tui busy quá không quá trình bày tất tần tật được), Retrofit bạn tự search.

Bước 1:

Tạo một Android Kotlin Project tên VolleyToNodeJS.

thêm lệnh api ‘com.android.volley:volley:1.1.0’ trong build.gradle của app level

Sau khi gõ lệnh xong thì nhớ bấm mục số 2 (Sync now)==>Lúc này thư viện volley sẽ được đưa vào ứng dụng và ta sử dụng nó một cách dễ dàng, đơn giản nhất.

Bước 2:

Thêm một ListView cho màn hình chính MainActivity như sau:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ListView android:id="@+id/lvProduct" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>

Bước 3:

Coding sử dụng Volley để triệu gọi Web API lấy danh sách Product đơn giản như sau:

fun TaiDanhSachProduct_Volley() { var url="http://192.168.1.137/nodejsapi/products" val queue = Volley.newRequestQueue(this) val getRequest = JsonArrayRequest(Request.Method.GET, url, null, object : Response.Listener<JSONArray> { override fun onResponse(response: JSONArray) { //response là 1 JSonArray chưa danh sách Product->ta phân tích để lấy dữ liệu trong này ra là ok } }, object : Response.ErrorListener { override fun onErrorResponse(error: VolleyError) { Log.d("Error.Response", error.toString()) } } ) queue.add(getRequest) }

Tổng thể ta có coding cuối cùng cho MainActivity như sau:

package com.communityuni.volleytonodejs import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.ArrayAdapter import android.widget.ListView import com.android.volley.Request import com.android.volley.toolbox.Volley import com.android.volley.RequestQueue import com.android.volley.Response import com.android.volley.VolleyError import com.android.volley.toolbox.JsonArrayRequest import org.json.JSONObject import com.android.volley.toolbox.JsonObjectRequest import org.json.JSONArray class MainActivity : AppCompatActivity() { lateinit var lvProduct:ListView lateinit var adapter: ArrayAdapter<String> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) addControls() } private fun addControls() { lvProduct=findViewById(R.id.lvProduct) adapter= ArrayAdapter(this,android.R.layout.simple_list_item_1) lvProduct.adapter=adapter } override fun onResume() { super.onResume() TaiDanhSachProduct_Volley() } fun TaiDanhSachProduct_Volley() { var url="http://192.168.1.137/nodejsapi/products" val queue = Volley.newRequestQueue(this) val getRequest = JsonArrayRequest(Request.Method.GET, url, null, object : Response.Listener<JSONArray> { override fun onResponse(response: JSONArray) { //response là 1 JSonArray chưa danh sách Product adapter.clear() for (i in 0 until response.length()) { var jsonObject=response.getJSONObject(i) var line=jsonObject.getString("Ma")+ "\n"+jsonObject.getString("Ten")+ "\n"+jsonObject.getDouble("DonGia") adapter.add(line) } } }, object : Response.ErrorListener { override fun onErrorResponse(error: VolleyError) { Log.d("Error.Response", error.toString()) } } ) queue.add(getRequest) } }

Chạy lên ta có kết quả:

Còn các API khác (POST, PUT, DELETE, GET chi tiết Product) các bạn cố gắng tự mày mò nha.Vì Volley là một trong những thư viện vô cùng đơn giản, dễ sử dụng và rất hiệu quả, nếu không làm được thì có thể add Facebook http://facebook.com/duythanhcse , Tui sẽ support khi rảnh

Coding của bài này tải ở đây

Chúc các bạn thành công!

Chia sẻ lên:

  • Tweet
  • Print
Like Loading...

Related

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