首页 > 代码库 > web后台与手机交互数据格式问题
web后台与手机交互数据格式问题
最近用http+post方式实现了系统间数据交互的需求.
常用的方式是 application/json方式直接post json对象
如
{"siteId":"ZHAN20160329TDLXJND144649","apiSecret":"userid123","workNumber":"FJ-8006-160912-1715-00001","fluetype":"2","apiKey":"yyxt"}
后台可以直接springmvc直接接收并转为相关vo对象处理.
而在手机与后台交互的场景中遇到一种格式要求
方法名称:appScanBuildingData
请求:json字符串形式,最外层用data包裹
demo格式范例是
data=http://www.mamicode.com/{"alarmDetail":[{"address":"中国","cgi":"CGI0"},{"address":"米国","cgi":"CGI1"},{"address":"日本","cgi":"CGI2"}],"areaCode":"350723","cellNumber":"1599999","cityCode":"350723","lat":"232.545","lon":"98.233","workNO":"ZB33000333337"}
这种数据需要怎么生成的?
以下说明主要参考https://imququ.com/post/four-ways-to-post-data-in-http.html
这种奇葩的格式要求其实使用的Content-Type: 应该为application/x-www-form-urlencoded;
提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码.
POST http://www.example.com HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=utf-8
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);约定这种格式的初衷估计就是后台为接收数据方便的考虑.
来自为知笔记(Wiz)
web后台与手机交互数据格式问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。