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");
        ArrayList<DataEntity> list = 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路径的数据

如下:

@RestController
public class HelloController {
    @RequestMapping(value="/hello/{id}/{name}",method= RequestMethod.GET)
    public String sayHello(@PathVariable("id") Integer id,@PathVariable("name") String name){
        return "id:"+id+" name:"+name;
    }
}

RequestParam获取请求参数的值

获取url参数值,默认方式,需要方法参数名称和url参数保持一致

localhost:8080/hello?id=1000,如下:

@RestController
public class HelloController {
    @RequestMapping(value="/hello",method= RequestMethod.GET)
    public String sayHello(@RequestParam Integer id){
        return "id:"+id;
    }
}
 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot项目拦截器获取Post方法的请求body实现

    1). 存在问题流只能读取一次 2). 目标多次读取流 3). 解决方法创建包装类 4). RequestWrapper package com.mazaiting.redeye.wrapper;   import com.mazaiting.redeye.utils.StreamUtil; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory;   import jav

  • SpringBoot过滤器如何获取POST请求的JSON参数

    目录 SpringBoot过滤器获取POST请求的JSON参数 想到了使用过滤器来实现这个功能 所以我们可以通过获取到输入流来获取body 从源码我们可以看到 我们创建一个类并继承这个包装类 有一点需要注意的 SpringBoot过滤器获取POST请求的JSON参数 项目中需要将每个请求的路径和请求参数以及响应结果,都记录在日志中,这样在出现问题时可以快速定位是哪里出现了问题. 想到了使用过滤器来实现这个功能 当请求来到过滤器时,会有一个Request参数,通过该参数就能获取到请求路径和请求参数

  • SpringBoot打印POST请求原始入参body体方式

    目录 SpringBoot打印POST请求原始入参body体 1.首先定义过滤器配置 2.实现1中的过滤器 Post接收不到body里的参数(对象参数) 检查注解 检查实体 检查Content-Type SpringBoot打印POST请求原始入参body体 1.首先定义过滤器配置 package com.choice.o2o.device.common.config; import com.choice.o2o.device.common.filter.LogFilter; import or

  • springboot中不能获取post请求参数的解决方法

    问题描述 最近在做微信小程序,用的spring boot做后端,突然发现客户端发送post请求的时候服务端接收不到参数.问题简化之后如下: 微信小程序端: 在页面放一个按钮进行测试 <!--index.wxml--> <view class="container"> <button catchtap='testpost'>点击进行测试</button> </view> 绑定一个函数发送post请求 //index.js //获

  • SpringBoot如何接收Post请求Body里面的参数

    目录 如何接收Post请求Body里的参数 ApiPost测试数据 Java接收数据 SpringBoot获取参数常用方式 参数在body体中 PathVaribale获取url路径的数据 RequestParam获取请求参数的值 如何接收Post请求Body里的参数 ApiPost测试数据 {     "list": [         "{'time':'xxxxx','distinct_id':'xxxx','appId':'xxxx'}",        

  • SpringBoot @PostMapping接收HTTP请求的流数据问题

    目录 @PostMapping接收HTTP请求的流数据 关于@PostMapping注解解析 总结 @PostMapping接收HTTP请求的流数据 @PostMapping("/test") public String pushMessage(@RequestBody byte[] data) throws Exception { String json = URLDecoder.decode(new String(data, DEFAULT_CHARSET), DEFAULT_CH

  • SpringBoot用实体接收Get请求传递过来的多个参数的两种方式

    目录 一.Controller层不带任何注解接收参数 二.Controller层通过@ModelAttribute接收参数 最近项目中Controller层查询接口需要通过实体来接受前端传过来的多个参数(Get请求),这个问题困扰了我很久,之前在第二家公司的时候,就因为我后端是Get请求,并且是通过实体去接收前端参数的,导致我当天上线搞到半夜没搞好,这次又遇到,势必解决它. 一年前,通过查看大量的坑爹文章,发现网上没有一篇有效的,这次通过阿里主管的协助,成功的通过实体接收到了Get请求传递过来的

  • springboot接收http请求,解决参数中+号变成空格的问题

    目录 springboot接收http请求,参数中+号变成空格 小插曲 解决get请求中的问题 解决post请求中的问题 SpringBoot问题笔记:http请求参数含有特殊符号[] 解决方法:修改tomcat配置 springboot接收http请求,参数中+号变成空格 小插曲 + 在执行URLEncoder.encode(String,"UTF-8")编码后会变成 %2B + 在执行URLDecoder.decode(String,"UTF-8")编码后会变成

  • SpringBoot解决跨域请求拦截问题代码实例

    前言 同源策略:判断是否是同源的,主要看这三点,协议,ip,端口. 同源策略就是浏览器出于网站安全性的考虑,限制不同源之间的资源相互访问的一种政策. 比如在域名https://www.baidu.com下,脚本不能够访问https://www.sina.com源下的资源,否则将会被浏览器拦截. 注意两点: 1.必须是脚本请求,比如AJAX请求. 但是如下情况不会产生跨域拦截 <img src="xxx"/> <a href='xxx"> </a&

  • SpringBoot如何接收数组参数的方法

    1.创建一个表单实体类,将数组封装到实体类中(Post提交) 表单类代码: @Data public class MyForm { private int[] ids; } 控制器代码: @Slf4j @RestController @RequestMapping("/info") public class InfoController { @PostMapping("/test") public String test(@RequestBody MyForm fo

  • 关于Springboot | @RequestBody 接收到的参数对象属性为空的问题

    背景 今天在调试项目的时候遇到一个坑,用Postman发送一个post请求,在Springboot项目使用@RequestBody接收时参数总是报不存在,但是多次检查postman上的请求格式以及项目代码都没有问题 Postman: 请求参数: { "firstName":"fdsaf", "lastName":"dfasdf" } Controller: Entity 通过debug模式可以发现传进到实体的参数都为null

  • SpringBoot接口接收json参数解析

    目录 SpringBoot接口接收json参数 前言 前提 一.GET 二.DELETE 三.POST/PUT/PATCH Springboot restFul 参数检验 概述 常用注解 简单应用举例 自定义校验 抛出BindException而非MethodArgumentNotValidException SpringBoot接口接收json参数 前言 通常来讲,HTTP 方法会映射为 CRUD 动作,但这并不是严格的限制,有时候 PUT 也可以用来创建新的资源,POST 也可以用来更新资源

  • SpringBoot常见get/post请求参数处理、参数注解校验及参数自定义注解校验详解

    目录 springboot常见httpget,post请求参数处理 PathVaribale获取url路径的数据 RequestParam获取请求参数的值 注意 GET参数校验 POSTJSON参数校验 自定义注解校验 总结 spring boot 常见http get ,post请求参数处理 在定义一个Rest接口时通常会利用GET.POST.PUT.DELETE来实现数据的增删改查:这几种方式有的需要传递参数,后台开发人员必须对接收到的参数进行参数验证来确保程序的健壮性 GET一般用于查询数

  • springboot项目完整后端请求Controller层优雅处理

    目录 前言 Controller 层参数接收 统一状态码 | 返回格式 | 封装 ResultVo 统一校验 | 原始做法 | @Validated 参数校验 | 优化异常处理 统一响应 | 统一包装响应 | NOT 统一响应 统一异常 前言 本篇主要要介绍的就是 controller 层的处理,一个完整的后端请求由 4 部分组成: 接口地址(也就是 URL 地址) 请求方式(一般就是 get.set,当然还有 put.delete) 请求数据(request,有 head 跟 body) 响应

随机推荐