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

Java后端接收Postman请求变量为null 传递参数为空问题咨询

问题根因
  • 请求体结构与后端接收参数完全不匹配:后端@RequestBody注解声明接收单个StudentRequest实体类对象,要求请求JSON第一层直接对应StudentRequest的成员变量;但当前Postman传入的JSON外层多包裹了一层studentRequest键,且对应值为数组结构,Spring MVC无法完成JSON到实体的映射,所以接收参数为null。
  • 补充隐藏问题:StudentRequest类中未声明publicKey成员变量,但定义了对应的get/set方法,JSON反序列化时可能抛出未知属性异常。
修复方案

方案1:修改Postman请求体(最简便,适配现有后端代码)

直接删除外层的studentRequest包装和数组结构,请求体修改为以下格式即可:

{
  "user": "admin",
  "duration": 19336,
  "publicKey": "按需传入对应公钥值,无该参数可以不传"
}

方案2:修改后端代码(适配现有请求体结构)

如果业务要求必须使用当前的请求体结构,按以下步骤调整:

  1. 新增请求包装类
public class StudentRequestWrapper {
    private List<StudentRequest> studentRequest;
    // 补全studentRequest属性的get/set方法
}
  1. 修改Controller层接口参数
@PostMapping("/caStudents/student")
public String generateSignedValue(@RequestBody StudentRequestWrapper wrapper) throws Exception {
    // 从wrapper中取出studentRequest数组处理即可
    String signedValue=studentService.getSignedValue(wrapper.getStudentRequest().get(0));
    return signedValue;
}
  1. 补全StudentRequest类的缺失成员变量,避免反序列化异常:
public class StudentRequest {
  private String user;
  private Long duration;
  // 补上缺失的publicKey声明
  private String publicKey;
  
  // 原有get/set方法保留即可
}

内容的提问来源于stack exchange,提问作者Developer and Thinker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:03