[英]How can I Customize Volley Library to make post request as java object to get response as java Object
[英]How can I retrieve that response in android using Volley library in android and Java
[
{
"id": 1,
"category": "Exercitationem perspiciatis quae ab facilis ratione quo.",
"description": "ut",
"amount": 6,
"user": "Colten Paucek",
"date": "2020-09-25T12:34:01.000000Z"
},
{
"id": 2,
"category": "Odit non nostrum possimus.",
"description": "facere",
"amount": 6,
"user": "Colten Paucek",
"date": "2020-09-25T12:34:01.000000Z"
}
]
以上數據是 API 響應,我想使用 java android 中的 Volley 庫獲取這些數據
下面的代碼是從我的 API 中獲取數據的 java 方法
private void loadExpenseFromApi(){
StringRequest sr = new StringRequest(Request.Method.GET, Constants.EXPENSE_URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jo = new JSONArray(response);
for(int i=0; i< jo.length(); i++) {
ListExpenses le = new ListExpenses(
jo.getInt("id"),
jo.getString("category"),
jo.getString("description"),
jo.getInt("amount"),
jo.getString("date")
);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}
);
}
我將StringRequest sr = new StringRequest(Request.Method.GET, Constants.EXPENSE_URL, new Response.Listener<String>() {
替換為一個名為 JsonArrayRequest 的類來調用 API JsonArrayRequest jar = new JsonArrayRequest(Constants.EXPENSE_URL, new Response.Listener<JSONArray>() {
private void loadExpenseFromApi(){
JsonArrayRequest jar = new JsonArrayRequest(Constants.EXPENSE_URL, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
for(int i=0; i< response.length(); i++) {
JSONObject jo = response.getJSONObject(i);
ListExpenses le = new ListExpenses(
jo.getString("id"),
jo.getString("category"),
jo.getString("description"),
jo.getString("amount"),
jo.getString("date")
);
listExpense.add(le);
adapter = new ExpenseAdapter(listExpense, getContext());
recyclerView.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volley", error.toString());
error.printStackTrace();
}
}
);
RequestHandler.getInstance(getContext()).addToRequestQueue(jar);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.