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"}

这种数据需要怎么生成的?

以下说明主要参考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 转码.

  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);

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

来自为知笔记(Wiz)

时间: 2024-11-08 06:50:01

web后台与手机交互数据格式问题的相关文章

web前端与手机应用的这些重点和知识点,你知道多少呢

web前端与手机应用的这些重点和知识点,你知道多少呢?随着互联网.移动互联网的发展,HTML5成为了客户端软件开发的主流技术,HTML5实际上是由:HTML5语言.CSS3.JAVASCRIPT语言组成. 1.web前端快速入门 在本阶段,我们需要掌握HTML与CSS基础,当然,也包含H5和C3的新特性.这个部分内容非常简单,而且非常容易掌握.相信你也更愿意学习这个部分,毕竟他可以让你最直观的感受到前端的魅力.为了锻炼大家写代码,可以根据你喜欢的站点去实现效果. 这一阶段是非常重要的基础阶段,所

Android程序中Web页面和NativeCode交互

首先应该在AndroidManifest.xml把下面这个加上使得具有网络访问权限 <uses-permission android:name="android.permission.INTERNET"/> 然后在布局文件上插入WebView main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:/

CGI原理解析之二------WEB服务和CGI交互数据

#include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/wait.h> #include <stdlib.h> #define    CGI_NAME "get_post.ums" #define    REQUEST_METHOD "REQUEST_METHOD=POST" #define REQUEST_PARAM

Web后台技术趋势

今天使用Google Trend比较了一下服务器端的程序开发语言技术ASP/ASP.NET Core, PHP, Node.Js的变化趋势,发现一下特点. ASP.NET最近几年一直再下降. ASP和php 曾经是两大web后台脚本技术,结果微软放弃发展asp转向asp.net.而PHP继续狂奔,加上因为开源的特点,迅速成为唯一首选,直到现在. ASP.NET 貌似功能强大,但却是over-design了,尤其是WebForms,已经被最近今年的设计理念抛弃了. ASP.NET 也要被微软自己的

java web 后台运行原理

java web 后台运行原理 当Web服务器接收到一个HTTP请求时,它会先判断请求内容--如果是静态网页数据,Web服务器将会自行处理,然后产生响应信息:如果牵涉到动态数据,Web服务器会将请求转交给Servlet容器.此时Servlet容器会找到对应的处理该请求的Servlet实例来处理,结果会送回Web服务器,再由Web服务器传回用户端. 针对同一个Servlet,Servlet容器会在第一次收到http请求时建立一个Servlet实例,然后启动一个线程.第二次收到http请求时,Ser

图灵机器人,web录音实现自动化交互问答

一.图灵机器人 介绍 图灵机器人是以语义技术为核心驱动的人工智能公司,致力于"让机器理解世界",产品服务包括机器人开放平台.机器人os和场景方案.\ 官方地址为: http://www.tuling123.com/ 使用 首先得注册一个账号,或者使用第3方登录,都可以. 登录之后,点击创建机器人 机器人名称,可以是自己定义的名字 选择网站->教育学习->其他 输入简介 创建成功之后,点击终端设置,拉到最后. 可以看到api接入,下面有一个apikey,待会会用到 右侧有一个

《高级Web后台开发》复习

一.单选题 1.如何声明一个PHP的用户自定义类?( B  ) A.<?php                                                                             B.<?php class Class_name() { }                     class Class_name { } ?>                                     ?> C.<?php   

bootstrap ace admin 整合java HTML5 全新高大尚web后台框架

获取[下载地址]   QQ: 313596790   [免费支持更新]支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 代码生成器(开发利器);      增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid

ace admin 整合java HTML5 全新高大尚web后台框架bootstrap

获取[下载地址]   QQ: 313596790   [免费支持更新]A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用