Postman里怎么用变量替换请求URL中的参数?

振岚 Dev 阅读 34

我在Postman里设置了一个环境变量base_url,值是https://api.example.com,但在请求URL里写成{{base_url}}/users却没生效,还是发到了原始字符串地址,这是为啥?

我确认环境已经选中了,也重启过Postman,变量名拼写也没错。是不是哪里配置漏了?

我来解答 赞 12 收藏
二维码
手机扫码查看
2 条解答
UE丶心虹
兄弟,你这个问题我之前也遇到过好几回,说白了就是变量放错地方了。

最可能的原因:你把变量加到「全局变量」里了,但同时又选中了某个环境。Postman有个坑爹的设定——如果你同时选中了环境,全局变量会被环境变量覆盖,但反过来环境变量没生效的话,Postman就会把 {{base_url}} 当成普通字符串发出去。

解决办法很简单:

检查一下你的变量到底加在哪儿。点击右上角那个眼睛图标(Environment quick look),看看 base_url 在哪个环境里显示着。如果显示在 Global 下面,那就说明你加错地方了。

正确做法是:先在右上角选中你的环境,然后在当前这个环境的变量列表里添加 base_url。添加完不用重启,直接发请求就能用。

还有个容易踩的坑——检查你的URL输入框里是不是手动复制粘贴进去的 {{base_url}},有时复制会把花括号变成全角字符({}),Postman就识别不了了。重新手打一遍最稳妥。

你先去确认下变量位置,基本就是这的问题。
点赞 1
2026-03-10 23:18
上官爱静
你这问题我之前也踩过坑,大概率是以下几个原因:

第一,检查一下变量名前后有没有空格。这个最坑,肉眼看不出来,但Postman会把它当成不同的变量名。特别是从别的地方复制过来的时候容易带空格。

第二,确认环境变量的作用域。你看看是不是在Globals里建的变量而不是在选中的环境里。Postman的变量优先级是:局部变量 > 环境变量 > Globals。如果你Globals里有同名的空值或者错误值,会覆盖掉环境变量。

第三,试试在Pre-request Script里打印一下,确认变量确实存在:

console.log(pm.environment.get("base_url"));


打开Postman的Console(View -> Show Postman Console),看输出是不是undefined。如果是undefined说明变量根本没读到你选的环境里。

还有个常见情况,就是你虽然选中了环境,但那个环境里实际上没有这个变量。去环境编辑界面再确认一下,变量名和值是不是都在,别只建了个空壳环境。

如果上面都没问题,那就用Pre-request Script硬设一下,先把值缓存起来:

pm.environment.set("base_url", "https://api.example.com");


然后再发请求,这样肯定能用。

另外说一句,Postman这玩意儿有时候会抽风,变量解析延迟。你试试把URL输入框清空重新写一遍,或者新建一个请求测试,别在老的请求上死磕。
点赞 2
2026-03-02 15:14