簡體   English   中英

使用Volley將數據列表發送到服務器

[英]Send data list to server using Volley

我需要使用排球將數據列表傳遞到服務器,並使用PHP訪問該數據。 從Android應用程序中,我需要將所有數據傳遞到一個表中並在服務器上訪問該數據。 您可以將其視為將購物車中的數據傳遞到服務器。

我可以從數據庫中獲取數據作為列表。 我需要將數據提交到服務器並訪問它。

RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
StringRequest request = new StringRequest(Request.Method.POST, NetworkHandler.ORDER, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        try{
            Log.d(LogMessages.ORDER_CONFIRM,response.toString());
        }
        catch(Exception ex){
            Toast.makeText(getApplicationContext(), ex.toString(), Toast.LENGTH_SHORT).show();
        }
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_SHORT).show();
    }
}) {
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        List<Food> listCart = db.getAllCartItems();
        Map<String, String> parameters = new HashMap<String, String>();
        parameters.put("orderitems",listCart .toString());
        return parameters;
    }
};
request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 2, DefaultRetryPolicy.DEFAULT_MAX_RETRIES*2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(request);

如果您打算將可變長度的數據列表發送到服務器,通常我會這樣做:1.發送“ count”參數以指示有多少條記錄2.將“ record_1”,“ record_2” ....參數發送到服務器

在服務器端,您應該先檢查“ count”,然后再檢查“ recored_#”從1到剛得到的計數。

您可以使用json格式將多個數據發送到服務器,並使用gson轉換為json數組

Gson gson = new GsonBuilder().create();
JsonArray myCustomArray = gson.toJsonTree(listCart ).getAsJsonArray();

我找到了解決方案。 我使用了GSON庫。 這是解決方案。

List<Food> listCart = db.getAllCartItems();
                             Gson gson = new Gson();
                             String data = gson.toJson(listCart);
                             Log.d(LogMessages.ORDER_CONFIRM,data);
                             Map<String, String> parameters = new HashMap<String, String>();
                             parameters.put("orderitems",data);

在PHP方面,我使用$ _POST ['orderitems']獲取訂單項,並使用json_decode對該數據進行解碼。然后,我可以訪問每個對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM