SpringBoot如何接收Post请求Body里面的参数
目录
- 如何接收Post请求Body里的参数
- ApiPost测试数据
- Java接收数据
- SpringBoot获取参数常用方式
- 参数在body体中
- PathVaribale获取url路径的数据
- RequestParam获取请求参数的值
如何接收Post请求Body里的参数
ApiPost测试数据
{"list": ["{'time':'xxxxx','distinct_id':'xxxx','appId':'xxxx'}","{'time':'xxxxx','distinct_id':'xxxx','appId':'xxxx'}","{'time':'xxxxx','distinct_id':'xxxx','appId':'xxxx'}","{'time':'xxxxx','distinct_id':'xxxx','appId':'xxxx'}"],"type": 1}
Java接收数据
需要提前创建好对应的Bean
由于传递过来的数据是String类型,因此需要转换一步
import cn.hutool.json.JSONObject; @PostMapping("/data/callback")public Object testResponse(@RequestBody JSONObject jsonObject) {JSONArray jsonList = jsonObject.getJSONArray("list"); ArrayListlist = new ArrayList<>(); for (Object jsObject : jsonList){DataEntity dataEntity = JSONObject.parseObject(jsObject.toString(), DataEntity.class); list.add(dataEntity); }Integer type = (Integer) jsonObject.get("type"); log.info(String.format("本次共接收%d条数据,type=%d",list.size(),type)); for (DataEntity dataEntity : list) {log.info(dataEntity.toString()); }}
SpringBoot获取参数常用方式
参数在body体中
在方法形参列表中添加@RequestBody注解
@RequestBody 作用是将请求体中的Json字符串自动接收并且封装为实体。如下:
@PostMapping("/queryCityEntityById")public Object queryCityEntityById(@RequestBody CityEntity cityEntity){return ResultUtil.returnSuccess(cityService.queryCityById(cityEntity.getId())); }
PathVaribale获取url路径的数据
如下:
@RestControllerpublic class HelloController {@RequestMapping(value="https://www.it610.com/hello/{id}/{name}",method= RequestMethod.GET)public String sayHello(@PathVariable("id") Integer id,@PathVariable("name") String name){return "id:"+id+" name:"+name; }}
【SpringBoot如何接收Post请求Body里面的参数】
RequestParam获取请求参数的值
获取url参数值,默认方式,需要方法参数名称和url参数保持一致
localhost:8080/hello?id=1000,如下:
@RestControllerpublic class HelloController {@RequestMapping(value="https://www.it610.com/hello",method= RequestMethod.GET)public String sayHello(@RequestParam Integer id){return "id:"+id; }}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 如何构建可重复读取inputStream的request
- 出版|如何在nature上发表文章
- springboot项目之相互依赖报错问题(基于idea)
- springboot打包实现项目JAR包和依赖JAR包分离
- 如何通过学生邮箱(教育邮箱)申请Jetbrains系列软件无限期试用
- 面试突击30(线程池是如何执行的(拒绝策略有哪些?))
- 聊聊如何让springboot拦截器的执行顺序按我们想要的顺序执行
- 面试官(高并发下,如何保证分布式唯一全局 ID 生成())
- 如何基于实时声纹变声实现对声音的“克隆”
- 技术解读(英特尔 x86 平台上,AI 能力是如何进行演进的((附PPT)))