web后台与手机交互数据格式问题

Posted redjk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web后台与手机交互数据格式问题相关的知识,希望对你有一定的参考价值。

最近用http+post方式实现了系统间数据交互的需求.
常用的方式是 application/json方式直接post json对象
  1. {"siteId":"ZHAN20160329TDLXJND144649","apiSecret":"userid123","workNumber":"FJ-8006-160912-1715-00001","fluetype":"2","apiKey":"yyxt"}
后台可以直接springmvc直接接收并转为相关vo对象处理.

而在手机与后台交互的场景中遇到一种格式要求
  1. 方法名称:appScanBuildingData
  2. 请求:json字符串形式,最外层用data包裹
demo格式范例是
  1. data={"alarmDetail":[{"address":"中国","cgi":"CGI0"},{"address":"米国","cgi":"CGI1"},{"address":"日本","cgi":"CGI2"}],"areaCode":"350723","cellNumber":"1599999","cityCode":"350723","lat":"232.545","lon":"98.233","workNO":"ZB33000333337"}
这种数据需要怎么生成的?


这种奇葩的格式要求其实使用的Content-Type: 应该为application/x-www-form-urlencoded;
提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码.
  1. POST http://www.example.com HTTP/1.1
  2. Content-Type: application/x-www-form-urlencoded;charset=utf-8
  3. title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3

当以application/json的content-type传送数据,被传送的对象只需被json序列化。当以application/x-www-form-urlencoded的方式传送数据。
请求的内容需要以..=..&..=..的格式提交,在请求体内内容将会自动以”&”和“ = ”进行拆分。

application/x-www-form-urlencoded方式传输,后台接收时候可以采用
String data = request.getParameter("data"); 这样的方式来接受json格式的数据.
然后在转为Object使用: 
AlarmInfo vo=null;
        vo=JSONObject.parseObject(data, AlarmInfo.class);

约定这种格式的初衷估计就是后台为接收数据方便的考虑.
 























以上是关于web后台与手机交互数据格式问题的主要内容,如果未能解决你的问题,请参考以下文章

js前台与后台数据交互-前台调后台

前端与spring交互数据的处理和接收基础方式

web与后台交互--websocket

MUI框架-09-MUI 与后台数据交互

php微信公众平台交互与接口详解

app与手机其他软件交互测试