VolleyPost請求,陣列形式的引數有的手機提交不了
阿新 • • 發佈:2018-11-10
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 voidonMySuccess(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(); }剩餘程式碼都一樣哦.