1. 程式人生 > >VolleyPost請求,陣列形式的引數有的手機提交不了

VolleyPost請求,陣列形式的引數有的手機提交不了

VolleyPost請求,陣列形式的引數有的手機提交不了,試了好多次,才發現可能陣列傳的有問題,先貼錯誤程式碼:

        HashMap<String, Object> params = new HashMap<>();
        params.put("name", mAddBrandName);
        if (categoryIds != null) {
            params.put("categoryIds", categoryIds);
        }
        for (int i = 0; i < categoryIds
.length; i++) { System.out.println(categoryIds[i]); } JSONObject json = new JSONObject(params); VolleyRequest.jsonRequest(this, Request.Method.POST, Constant.Brand_Save, Constant.HGJ_TAG, json, new VolleyInterface(this, VolleyInterface.mListener, VolleyInterface.mErrorListener) { @Override public void
onMySuccess(JSONObject result) { if (result != null) { try { if (result.getInt("code") == 200) { CommonUtils.showToastMsg(AddNewBrandActivity.this, "新增成功"); finish(); } else
{ CommonUtils.showToastMsg(AddNewBrandActivity.this, result.getString("msg")); } } catch (JSONException e) { e.printStackTrace(); } } } @Override public void onMyError(VolleyError error) { CommonUtils.showToastMsg(AddNewBrandActivity.this, "請求失敗"); } });
 
 
此次提交的資料引數中,categoryIds是一個數組,我在魅族手機,小米手機,三星手機中可以提交成功,但谷歌模擬器,OPPO等手機就請求失敗。這次換了JSON解析的方法,這次成功了。程式碼如下:

 

 

        HashMap<String, Object> params = new HashMap<>();
        params.put("name", mAddBrandName);
        if (categoryIds != null) {
            params.put("categoryIds", categoryIds);
        }
        for (int i = 0; i < categoryIds.length; i++) {
            System.out.println(categoryIds[i]);
        }
//        {"name":"好利來","categoryIds":[2,3]}
        String strJson = GsonUtils.parseMapToJson(params);
        JSONObject json = null;
        try {
            json = new JSONObject(strJson);
        } catch (JSONException e) {
            e.printStackTrace();
        }
 
剩餘程式碼都一樣哦.