Android Http post 請求傳遞json 內包含數組 給服務器的實現方式


  最近項目中需要傳遞一個帶數組的json數據給后台需求:

  格式如下:

  {

  "orderType": "TX",

  "truckNo": "YCSCR38913",

  "pointNo": "6",

  "cntNum": 1,

  "transactList": [{

  "orderNo": "202202070014",

  "eirId": "5516985855147",

  "cntNo": "23525635555",

  "shipSeal": "",

  "customSeal": ""

  }]

  }

  以前我的post請求方式,都是把參數拼接到url后面

  那上述這種格式,是否可以采取 以前的方式,進行操作呢?

  測試結果是不行的:

  以下是針對上面jon正確的請求方式:

  String orderNo="";

  String eirId="";

  String busiType="";

  String cntNo="";

  RequestParams params=new RequestParams();

  addRequestHeader(params);

  JSONObject object=new JSONObject();

  try {

  object.put("orderType", orderType);//上一頁傳遞過來的數據

  object.put("truckNo", checkedKey);//本頁提取的數據

  object.put("pointNo", gateNoStr);//本頁提取的數據

  object.put("cntNum", size + "");

  JSONArray jsonArray=new JSONArray();

  for (int i=0; i < checkList.size(); i++) {

  BDSuitcaseBean.DataBean.ListBean listBean=checkList.get(i);

  orderNo=listBean.getOrderNo();//1.訂單號

  eirId=listBean.getEirId();//2.訂單號

  busiType=listBean.getBusiType();//3.箱子類型

  cntNo=listBean.getCntNo();//箱號

  //8.鉛封號,根據箱子類型來判斷 提空返重,提重返空,收空,才有鉛封號

  if (busiType.equals(Constant.TZBD) || busiType.equals(Constant.TZ_FKBD) || busiType.equals(Constant.SKXBD) || busiType.equals(Constant.TkBD)) {//提重,提重返空,提空,收空

  shipSeal="";//不用傳鉛封號

  } else if (busiType.equals(Constant.TK_FZBD) || busiType.equals(Constant.TZ_FZBD) || busiType.equals(Constant.SZXBD)) {//提空返重,提重返重,收重Y

  shipSeal="Y";

  } else {

  Logger.e(TAG, "未知箱子類型-------------" + busiType);

  }

  JSONObject object1=new JSONObject();

  object1.put("orderNo", orderNo);

  object1.put("eirId", eirId);

  object1.put("cntNo", cntNo);

  object1.put("shipSeal", shipSeal);

  object1.put("customSeal", customSeal);

  jsonArray.put(object1);

  }

  // object.put("transactList", "");

  object.accumulate("transactList", jsonArray);

  params.setAsJsonContent(true);//支持json

  params.setBodyContent(object.toString());

  } catch (JSONException e) {

  Logger.e(TAG, "e--------" + e);

  e.printStackTrace();

  }

  BaseApplication.getInstance().httpRequest.xPostjson(mContext, params, Constant.BASE_HTTP + ContantUrl.getAppointCarSumit, new RequestResultJsonCallBack() {

  @Override

  public void onSucess(String result) {

  hideProgress();

  Logger.e(TAG, "指派車輛---result---" + result);

  NewBaseBean info=Constant.getPerson(result, NewBaseBean.class);

  if (info.getCode()==Constant.RETURN_SUCCESS__STATE_CODE) {

  finish();

  } else {

  ToastUtil(mContext, info.getMessage());

  }

  }

  @Override

  public void onFailure(int errorCode, String errorMsg) {

  hideProgress();

  Logger.e(TAG, "指派車輛---result---" + errorMsg);

  }

  });

  按照上面的傳遞方式即可以把一個json 字符串傳遞給服務端,他們解析出來的也是一個json數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM