测试接口传参数时,放在Header和Body中后台接收参数的区别

Post 请求:参数放 Header / Body 后端接收区别(SpringBoot)

一、参数放在 Header(请求头)

1、取值注解:@RequestHeader

java 复制代码
@PostMapping("/header")
public String getHeader(@RequestHeader("token") String token) {
    return token;
}
  • 位置:Postman → Headers 面板填 key=value
  • 特点
  1. 不属于请求体,和 GET/POST 无关,GET 也能在 Header 带参
  2. 无法传复杂对象、数组,只适合短字符串(token、appId、版本号)
  3. 不会被@RequestBody读取,和 Body 参数互不干扰
  4. 参数不在 url、不在 body,抓包在请求头字段

二、参数放在 Body(请求体)分两种格式

① Body → x-www-form-urlencoded(表单格式)

取值:@RequestParam

java 复制代码
@PostMapping("/form")
public String getForm(@RequestParam("name") String name) {
    return name;
}
  • Postman:Body→x-www-form-urlencoded,键值对
  • 底层:表单拼接name=xx&age=18,放到请求体
  • 不能用 @RequestBody 接收

② Body → raw-JSON(最常用)

取值:@RequestBody(整个 body 封装成对象)

java 复制代码
@PostMapping("/json")
public String getJson(@RequestBody User user) {
    return user.getName();
}
  • Postman:Body→raw→JSON {"name":"张三"}
  • 规则:
  1. @RequestBody一次性读取整个 Body 流,一个接口只能出现一次
  2. 不能搭配@RequestParam拿 body 里字段
  3. 支持对象、数组、嵌套复杂结构

三、核心对比汇总

位置 取值注解 数据格式 适用场景
Header @RequestHeader 单个字符串 token、鉴权、设备信息
Body 表单 @RequestParam key=val&key=val 简单键值、老表单提交
Body JSON @RequestBody JSON{}/\[\] 前后端分离、复杂入参

四、高频踩坑

  1. JSON 参数放 Body,却用 @RequestParam:拿不到值,报参数缺失
  2. Header 参数用 @RequestBody:拿不到,RequestBody 只读 body
  3. 一个接口:@RequestHeader(头) + @RequestBody(体) 可以共存,互不冲突
相关推荐
Fuyo_111912 分钟前
C++ AVL树保姆级详解:从平衡因子到四大旋转机制
java·c++·算法
锋行天下17 分钟前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
努力努力再努力wz23 分钟前
【Lua 入门系列】Lua 函数深入理解:函数对象、多返回值、可变参数、闭包、递归与尾调用优化
开发语言·lua
Sarvartha31 分钟前
Date、LocalDate、LocalTime、LocalDateTime、DateTimeFormatter类
java
jktantan32 分钟前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
阿俊-全栈开发1 小时前
LikeShop 多商户 Java 版商城微服务模块拆分与部署架构演进实践
java·微服务·架构·likeshop开源商城·多商户源码
计算机魔术师1 小时前
Anthropic官方插件被「寄生」,背后是同一类攻击又来了
前端
飞浪纪元[FWC–FE]1 小时前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt
Wang's Blog1 小时前
Java 项目实战:交友项目 - 联系人列表
java·开发语言·交友
我命由我123451 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理