Springboot接收http参数总结(最简单易懂)

1. 前端能携带请求参数的地方

http请求一半前端请求参数放在三个地方:请求头,请求查询参数(Query String),请求体。

请求体需要获取HttpServletRequest对象才能获取。

2. 请求体常见格式

而请求体中可以存放多种格式的数据,前端通过发送的请求头参数content-type来表示自己放在请求体中参数的格式是什么。一般常见的也有三种:form-data,x-www-form-urlencoded,application/json。

还有很多很多中请求体格式,但是其他格式很少使用,本文也会对其如果接收进行总结。

3. 什么时候用@RequestBody

如果接收的是请求体,并且请求体是application/json就用@RequestBody注解。

4. @RequestParam

如果接收请求查询参数(url)或者请求体(form-data或x-www-form-urlencoded)格式,那么可以直接用相同名称请求参数对象去接收,或者用javabean去接收。如果接收的对象和请求的参数名不相同,就需要用@RequestParam来指定需要接收哪个。

5. 例子

同时接收请求体和请求查询参数(Query String),并且同时使用javabean和string来接收querystring。


接收正常,

6. 总结

  1. 接收json类型的请求体就在接收参数上加@RequestBody。
  2. 其他情况直接用自定义对象或者内置数据类型对象不用加注解接收,如果需要指定接收哪个参数,就加@RequestParam。
  3. 如果你的参数中有HttpServletRequest类型的参数,也会被自动注入。通过HttpServletRequest对象可以获取请求的所有内容,包括请求头,请求查询参数(url),请求体。

7. 接收请求体类型为application/octet-stream

application/octet-stream表示请求体内容为二进制数据,没有键值对。类似于直接读取文件流。

直接通过httpServletRequest.getInputStream()获取请求体的流。

相关推荐
板板正6 分钟前
Spring Boot 整合MongoDB
spring boot·后端·mongodb
bobz96542 分钟前
恶补 vhost,vDPA
后端
泉城老铁1 小时前
在高并发场景下,如何优化线程池参数配置
spring boot·后端·架构
泉城老铁1 小时前
Spring Boot中实现多线程6种方式,提高架构性能
spring boot·后端·spring cloud
昵称为空C1 小时前
SpringBoot 实现DataSource接口实现多租户数据源切换方案
后端·mybatis
hrrrrb2 小时前
【Java Web 快速入门】九、事务管理
java·spring boot·后端
Mr_Xuhhh3 小时前
传输层协议TCP(3)
运维·服务器·网络·网络协议·tcp/ip·http·https
lsnm3 小时前
【LINUX网络】HTTP协议基本结构、搭建自己的HTTP简单服务器
linux·运维·服务器·c语言·网络·c++·http
AirMan3 小时前
深入解析 Spring Caffeine:揭秘 W-TinyLFU 缓存淘汰策略的高命中率秘密
后端
小码编匠4 小时前
C# Bitmap 类在工控实时图像处理中的高效应用与避坑
后端·c#·.net