博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java接收http请求body中的json数据
阅读量:6114 次
发布时间:2019-06-21

本文共 1194 字,大约阅读时间需要 3 分钟。

hot3.png

一般情况下,web应用中,浏览器发送http请求,传参数的时候都是作为param传递的,java服务端通过request.getParameter(name)可以获取参数内容;

但是会有一些场景,把参数放在了http的payload中(contentType:”application/json”),这时,使用getParameter就获取不到了, 比如下面这张图,参数是json字符串,放在了payload中

实际上,payload,就是http的body,通过读取body,就获取到了

1. 原生servlet获取

http body通过读取input流可以得到

br = new BufferedReader(new InputStreamReader((ServletInputStream) request.getInputStream(), "utf-8"));StringBuffer sb = new StringBuffer("");String temp;while ((temp = br.readLine()) != null) {    sb.append(temp);}br.close();params = sb.toString();

如果传递的是json,得到字符串之后,再反序列化成json对象就可以了

2. springmvc获取

SpringMVC中有一个@RequestBody注解,就是用来将请求body中的json转换为java对象的,不仅转换普通的java bean,也可以是List,很方便

@RequestMapping(value = "/query", method = RequestMethod.POST)public ModelAndView queryList(@ModelAttribute("ReportBo") ReportBo query,                                       @RequestBody ReportBo query1,                                       HttpServletRequest request) {                                       }

参考文档

http://blog.csdn.net/giraffe_zj/article/details/3343143

http://www.oschina.net/question/227902_162591
http://blog.csdn.net/wfung_kwok/article/details/7042101

转载于:https://my.oschina.net/u/178116/blog/1358562

你可能感兴趣的文章
虚拟机VMware 9安装苹果MAC OSX 10.8图文教程
查看>>
POJ3694 Network
查看>>
微信小程序开发-框架
查看>>
redo、undo、binlog的区别
查看>>
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
[转]无法安装MVC3,一直卡在vs10-kb2483190
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
web框架-(二)Django基础
查看>>
Jenkins持续集成环境部署
查看>>