1. 若依框架中URL参数编码问题解析
在若依(RuoYi)框架的实际开发中,前端与后端交互时经常会遇到参数传递的问题,特别是当参数需要以特定结构传递时。很多开发者在使用Postman或Apifox等API测试工具时,会发现直接传递params[pageNum]这样的参数无法被后端正确接收,这实际上涉及到了URL编码的底层机制。
1.1 问题现象重现
当我们尝试在API测试工具中直接使用方括号传递参数时:
code复制params[pageNum]=1¶ms[pageSize]=10
后端接收到的参数往往会变成:
java复制// 错误接收结果
"params[pageNum]" : "1"
"params[pageSize]" : "10"
而我们需要的是后端能够正确解析为:
java复制// 正确接收结果
params : {
pageNum : "1",
pageSize : "10"
}
1.2 URL编码原理剖析
HTTP协议规定,URL中的特殊字符必须进行百分号编码(Percent-encoding)。方括号[]在URL中属于保留字符,需要被编码为:
[→%5B]→%5D
若依框架的后端参数解析器是基于Spring MVC的,它默认会按照这种编码规则来解析结构化参数。如果不进行编码,方括号会被当作普通字符处理,导致参数解析失败。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 正确传参方式详解
2.1 Postman中的正确配置方法
-
Params选项卡设置:
- 在Postman的Params选项卡中,不要直接输入带方括号的参数名
- 应该分别添加两个键值对:
- Key:
params%5BpageNum%5D→ Value:1 - Key:
params%5BpageSize%5D→ Value:10
- Key:
-
URL编码开关:
- Postman默认会自动编码URL
- 确保不要手动关闭这个功能(在Settings → General中检查)
-
Raw模式验证:
text复制
GET http://example.com/a
