Android Http post 请求传递json 内包含数组 给服务器的实现方式.
2018-02-28 23:22
786 查看
最近项目中需要传递一个带数组的json数据给后台需求:格式如下:{"orderType": "TX","truckNo": "YCSCR38913","pointNo": "6","cntNum": 1,"transactList": [{"orderNo": "201802070014","eirId": "5516985855147","cntNo": "23525635555","shipSeal": "","customSeal": ""}]}以前我的post请求方式,都是把参数拼接到url后面,如: http://www.szgber.cn/api/m1/sdxg/yybd/common/dictList?group=truckNoLevelNameListAll那上述这种格式,是否可以采取 以前的方式,进行操作呢? 测试结果是不行的: 以下是针对上面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);//支持jsonparams.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() {@Overridepublic 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.show(mContext, info.getMessage());}}
@Overridepublic void onFailure(int errorCode, String errorMsg) {hideProgress();Logger.e(TAG, "指派车辆---result---" + errorMsg);}});按照上面的传递方式即可以把一个json 字符串传递给服务端,他们解析出来的也是一个json数据。
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);//支持jsonparams.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() {@Overridepublic 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.show(mContext, info.getMessage());}}
@Overridepublic void onFailure(int errorCode, String errorMsg) {hideProgress();Logger.e(TAG, "指派车辆---result---" + errorMsg);}});按照上面的传递方式即可以把一个json 字符串传递给服务端,他们解析出来的也是一个json数据。
相关文章推荐
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android网络编程之Http请求服务器数据(POST方式)
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android网络编程之Http请求服务器数据(POST方式)
- 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- Android开发 httpClient post方法请求tomcat服务器实现注册登陆
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android传统HTTP请求get----post方式提交数据(包含乱码问题)
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android开发 httpClient post方法请求tomcat服务器实现注册登陆
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android使用HttpClient以Post、Get请求服务器发送数据的方式(普通和json)
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求