You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring项目updateUser接口如何在Postman中正确传递请求参数

400报错根因

你当前Controller层的参数绑定写法错误:@RequestBody注解默认会把整个请求体的JSON内容映射到它修饰的参数上,你现在只给第一个int id参数加了这个注解,框架尝试把整个JSON对象转为int类型,类型不匹配直接抛出解析错误,就返回400。

正确实现步骤

第一步:调整后端代码

你需要先把三个接收参数封装成一个DTO对象,再用@RequestBody修饰整个DTO:

  1. 新建参数接收类:
public class UserUpdateDTO {
    private int id;
    // 要修改的字段名
    private String parameter;
    // 修改后的新值
    private String updateToBe;

    // 这里要补充所有字段的getter、setter方法
}
  1. 修改Controller层方法:
public void updateUser(@RequestBody UserUpdateDTO updateDTO) {
    service.updateUser(updateDTO.getId(), updateDTO.getParameter(), updateDTO.getUpdateToBe());
}

第二步:Postman请求体参数

调整完成后,请求体的JSON需要传入三个字段:

{
    "id": 1,
    "parameter": "password",
    "updateToBe": "1234"
}

各字段说明:

  • id:需要修改的用户ID
  • parameter:要修改的字段标识,可选值为mail/phone_no/password,大小写不敏感
  • updateToBe:修改后的目标值,注意如果parameter传phone_no,这个值要填可以转为整数的字符串,否则会报数字格式化错误

临时替代方案(不用新建DTO)

如果你不想新增DTO类,也可以把参数都改为请求参数传递,修改Controller为:

public void updateUser(@RequestParam int id, @RequestParam String parameter, @RequestParam String updateToBe) {
    service.updateUser(id, parameter, updateToBe);
}

此时不需要在Postman的请求体里填内容,直接在Params栏填写三个参数的键值对即可请求成功。

内容的提问来源于stack exchange,提问作者Raeroxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:27:04