Java做接口与安卓的对接
来源:互联网 发布:淘宝网页装修 编辑:程序博客网 时间:2024/06/05 07:26
public String CarrierQueryPort(){ HttpServletRequest request=this.getRequest(); //此处必须进行数据压缩 ByteArrayOutputStream outStream = new ByteArrayOutputStream(); GZIPOutputStream gzipOut = null; HttpServletResponse response = this.getResponse(); JSONArray jsonArray=new JSONArray(); JSONObject jsonObj = null; BufferedReader br = null; //用来接收拼装完成的json String appMsg = ""; //查询条件 //安卓端传过来的json中的key值 String carrierOutNo = ""; String unitName = ""; String exportCode = ""; Date qStartDate = null; Date qEndDate = null; int startIndex = 0; int pageSize = 0; //求符合条件的合计数 String msgTotalNum = ""; try{ gzipOut = new GZIPOutputStream(outStream); //接收json //采用流的方式取出json数据,并将读出来的字符串拼装成json br=new BufferedReader( new InputStreamReader((ServletInputStream)request.getInputStream()) ); String line=null; StringBuffer sb=new StringBuffer(); while( (line=br.readLine())!=null ){ sb.append(line); } appMsg=sb.toString(); try{ //如果传递过来的数据有异常,如乱码导致的双引号丢失造成无法正常拼装成json数据做的异常处理 jsonObj=JSONObject.fromObject(appMsg); }catch(Exception e){ gzipOut.write(0); gzipOut.close(); return NONE; } //获取查询条件值 startIndex=jsonObj.getInt("startIndex"); pageSize=jsonObj.getInt("endIndex")-startIndex+1; carrierOutNo=jsonObj.getString("carrierOutNo"); exportCode=jsonObj.getString("exportCode"); unitName=jsonObj.getString("unitName"); unitName=new String(new String(unitName.getBytes(),"utf-8").getBytes(),"GBK"); //PublicFunction写的公共类strToDate方法 qStartDate=PublicFunction.getDate(jsonObj.getString("qStartDate")); qEndDate=PublicFunction.getDate(jsonObj.getString("qEndDate")); //放入query DetachedCriteria query=DetachedCriteria.forClass(ExportCarrier.class); this.addParameters(query, carrierOutNo, unitName, exportCode,qStartDate,qEndDate); //符合条件json数据,具体实现代码不贴出 jsonArray = JSONArray.fromObject(carrierService.getCarrierTree(query,pageSize,startIndex)); query=DetachedCriteria.forClass(ExportCarrier.class); this.addParameters(query, carrierOutNo, unitName, exportCode,qStartDate,qEndDate); //符合记录数,具体实现代码不贴出 msgTotalNum=carrierService.getEntityCountByCriteria(query)+""; jsonObj.put("carrierList", jsonArray); jsonObj.put("msgTotalNum", msgTotalNum); jsonObj.remove("carrierOutNo"); jsonObj.remove("exportCode"); jsonObj.remove("unitName"); System.out.println(jsonObj.toString()); if(jsonObj!=null){ //压缩传输出去 gzipOut.write(jsonObj.toString().getBytes("utf-8")); gzipOut.close(); byte[] temp = outStream.toByteArray(); response.setHeader("Content-Encoding","gzip"); response.setHeader("Content-Length", temp.length+""); response.getOutputStream().write(temp); } }catch(Exception e){ e.printStackTrace(); } return NONE; }
0 0
- Java做接口与安卓的对接
- PHP与安卓对接
- C#与C#接口对接,C#与Java的接口对接(序列化与反序列化)——(一)
- C#与C#接口对接,C#与Java的接口对接(序列化与反序列化)——(二)
- c++服务端用webservices【gsoap】做服务端与java后台对接信息的测试工具
- 常用的接口对接
- 安卓与PC网络对接实现视频实时播放
- springmvc 对接安卓与ios,获取数据
- 后台与前端接口对接的报错问题
- PHP与.NET的POST接口对接问题
- 小菜鸟与后台对接接口下来的感受
- Android下对接Java写的WebServer接口的实现
- 中小电商如何与全球400余家快递物流公司做接口对接
- 接口对接的几个等级
- 安卓开发基础新手必知java知识之接口与抽象类的区别
- 使用URLConnection与HttpClient进行接口对接
- 如何申请与对接支付接口
- 接口对接
- [Cloud Computing]Mechanisms: Orchestration Engine
- ORACLE的sign函数和DECODE函数
- 开源 java CMS - FreeCMS2.5 标签infoList
- 【CF 699B】One Bomb(思维)
- Codeforces 698A Vacations
- Java做接口与安卓的对接
- Facade模式
- eclipse开发效率提升
- linux(Centos7)中安装memcache
- android点击事件的监听_Toast
- python学习——使用WEB框架
- WebService-wsimport
- Codeforces Round #363 (Div. 2) C. Vacations
- 感悟