Postman预请求脚本如何为pm.sendRequest的URL添加查询参数?
Postman预请求脚本中为pm.sendRequest添加查询参数的正确实现
方案1:通过内置Url对象构建带参数的请求(最稳定、无编码问题的实现方式)
该方法完全规避手动拼接URL的格式错误,支持自动参数编码、自动处理参数分隔符,是Postman官方推荐的URL构建逻辑。
// 基于全局存储的基础域名初始化URL实例 const requestUrl = new pm.request.Url(pm.globals.get("base_url")); // 拼接接口路径段 requestUrl.addPath(`${bankNum}/loans/${loan14}`); // 批量追加查询参数,自动完成编码和格式适配 requestUrl.addQueryParams({ // 替换为实际业务需要的查询参数键值对 "grant_type": "client_credentials", "status": "ACTIVE" }); pm.sendRequest({ url: requestUrl.toString(), method: 'GET', header: { 'Authorization': '********', }, }, function (err, response) { console.log(response.json()); });
方案2:在sendRequest配置项中直接传入query参数对象
pm.sendRequest的配置结构与Postman原生请求的配置完全对齐,无需手动拼接URL,直接传入query字段即可自动完成参数拼接。
pm.sendRequest({ url: `${pm.globals.get("base_url")}${bankNum}/loans/${loan14}`, method: 'GET', header: { 'Authorization': '********', }, // 直接在此处定义查询参数,Postman会自动完成拼接逻辑 query: { "grant_type": "client_credentials", "status": "ACTIVE" } }, function (err, response) { console.log(response.json()); });
常见参数添加无效的原因
- 手动拼接URL时,第一个查询参数前漏写
?,导致参数被识别为路径的一部分,服务端无法读取 - 参数值包含中文、空格、特殊符号时未做URL编码,导致请求在传输过程中被截断
- 拼接URL时全局变量值本身末尾自带斜杠或多余字符,和手动加的参数分隔符冲突,导致参数解析失效
内容的提问来源于stack exchange,提问作者Kody Berry
相关产品推荐
相关产品推荐

