记录一下安卓和后端数据交互吧!数据传输框架OkHttp3
题外话::其实安卓和后端的数据交互也就相当于网页端和后端的交互一样。后端一样的写接口!传数据的变成了安卓端而已!由于公司要求都是写全套的,所以也写了那么一点安卓!手动滑稽!当然博主还停留在Java开发安卓!就来说说数据交互吧!
1、后端写好接口,postman测试没问题!
@RequestMapping("/getallareactrl")
@ResponseBody
public Result getAllAreaCtrl(@RequestBody ClientRestInfo startRollCallInfo) {
logger.info("获取数据 ...");
List<AllControl> acList = areaCtrlRecordService.getAllAreaStats(Category.CRIMINAL.getValue());
Result result = new Result(ResultType.OK, "");
result.getResultMap().put(Constants.ResultKey.DATA_LIST, acList);
return result;
}
2、数据没问题,那我们就需要来安卓端接收了!
public void getAreaCtrlInfo(){
new Thread(new Runnable() {
@Override
public void run() {
JSONObject param = new JSONObject();
param.put(Constants.Param.CLIENT_IP,getPadIP()); // 访问后端接口需要的数据 一个个put进去
String url = CommonCode.getPortalUrl(Constants.Portal.GET_ROLL_CALL_DATA); //后端接口地址
JSONObject result = CommonCode.postGetJson(param,url); //返回的result
if (CommonCode.getResultFlag(result)) {
JSONArray callInfos = (JSONArray) CommonCode.getResultMapProperty(result, Constants.Param.DATA_LIST);
........处理这个result ,把json里的数据提取出了来用
public static String getPortalUrl(String portalname){
String url = "http://" + serverIpPort + portalname;
return url;
}
serverIpPort根据app的配置的服务器IP获取的。如192.168.2.9:8080 来看看获取数据的OkHttp·方法:
public static JSONObject postGetJson(JSONObject param, String url) {
String resultstr = post(param,url);
try{
JSONObject result = JSONObject.parseObject(resultstr);
return result;
}catch (Exception e){
JSONObject failed = new JSONObject();
failed.put(Constants.Param.RESULT_FLAG,0);
failed.put(Constants.Param.RESULT_MESSAGE,e.toString());
return failed;
}
}
Post方法可直接传送到之前的一篇关于OkHttp3使用的博客,里面有详解!
所用均博主实用总结所得,可能不那么权威,也可能有贻误!如有错!还望指正!谢谢!记录一下,积累一点点!