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

Postman无法向Spring应用传递@RequestParams,手动输入URL却正常

问题诊断与解决方案

核心问题分析

你遇到的问题源于两个关键错误:

  1. 请求路径不匹配:代码中@GetMapping映射的路径是/api/public/categories,但实际请求的URL是http://localhost:8080/api/public/products,路径不一致导致请求未命中目标方法,只能读取参数默认值。
  2. 参数名格式不规范:@RequestParam的name属性包含空格(Page size)和大小写混合命名(Page_number、Sortfield),GET请求参数名对大小写敏感,Postman中参数名若与注解name不完全匹配,Spring无法正确绑定参数,会自动使用默认值。

具体修复步骤

1. 统一请求路径

将方法映射路径修正为实际请求的路径,或调整请求URL匹配方法路径:

// 若实际请求是/products,修改@GetMapping路径
@GetMapping("/api/public/products")
public ResponseEntity<CategoryResponse> getallcategories(
    // 其余参数不变
) {
    // 方法逻辑不变
}

2. 规范参数名并保持匹配

修改@RequestParam的name为无空格、大小写统一的格式(推荐小写加下划线),同时在Postman的Params标签中使用完全一致的参数名:

@GetMapping("/api/public/products")
public ResponseEntity<CategoryResponse> getallcategories(
    @RequestParam(name = "page_number", defaultValue = Appconstants.PAGE_NUMBER, required = false) Integer pagenumber,
    @RequestParam(name = "page_size", defaultValue = Appconstants.PAGE_SIZE, required = false) Integer pgsize,
    @RequestParam(name = "sort_field", defaultValue = Appconstants.SORT_CATEGORIES_BY, required = false) String sortby,
    @RequestParam(name = "sort_order", defaultValue = Appconstants.SORT_DEFAULT, required = false) String sortorder
) {
    return new ResponseEntity<>(
        cate.getallcategories(pagenumber, pgsize, sortby, sortorder),
        HttpStatus.OK
    );
}

在Postman的Params标签中填写与上述name完全一致的参数:

  • page_number:分页页码
  • page_size:分页大小
  • sort_field:排序字段
  • sort_order:排序顺序

3. Postman参数传递验证

确保Postman中选择GET请求后,在Params标签下添加参数,不要在Body中传递(GET请求参数应放在URL查询串中,Body通常不用于GET请求参数传递)。

内容的提问来源于stack exchange,提问作者Fitz chivalry farseer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 08:07:42