当前位置: 首页 > news >正文

【Postman】对GET请求的参数进行URL编码

文章目录

    • 处理单个参数
    • 处理多个参数
    • 动态设置编码参数到环境变量
    • 编码URL路径参数
    • 在请求头(Header)中进行编码

PostmanPre-request Script中,你可以使用 JavaScript内置的 encodeURIComponent()函数或 Postman提供的 pm.encode方法对 GET请求的查询参数进行编码。这样做的主要目的是为了确保 URL参数符合规范,特别是在参数包含空格、中文或其他特殊字符(如+, &, =, %)时,避免服务器端解析错误或请求失败。

处理单个参数

参考 使用Postman如何在接口测试前将请求的参数进行自定义处理

处理多个参数

如果请求有多个参数需要编码,可以遍历所有查询参数并进行处理。

// 获取所有查询参数
let queryParams = pm.request.url.query;// 遍历并编码每一个参数的值
queryParams.each(param => {if (param.value) {let originalValue = param.value;let encodedValue = encodeURIComponent(originalValue);param.value = encodedValue;console.log(`参数 ${param.key} 编码后: ${encodedValue}`);}
});

动态设置编码参数到环境变量

有时可能希望将编码后的值存入环境变量,供后续请求使用。

// 获取、编码并设置环境变量
let rawPhone = "+123 456-7890"; // 假设这是从某处获取的值
let encodedPhone = encodeURIComponent(rawPhone);
pm.environment.set("encodedPhone", encodedPhone);
console.log("已设置编码后的电话号码环境变量:", encodedPhone);// 然后在URL中使用:/path/get?phone={{encodedPhone}}

编码URL路径参数

除了查询参数,有时URL路径部分也可能需要编码。

// 假设URL中有路径参数,如 /users/:name
let pathVariable = "John Doe";
let encodedPathVar = encodeURIComponent(pathVariable);
// 注意:直接修改URL路径部分可能需要更复杂的字符串操作
pm.request.url.path = pm.request.url.path.map(segment => segment.includes(":") ? segment : encodeURIComponent(segment)); // 这是一个简化的示例,实际操作需谨慎

在请求头(Header)中进行编码

Pre-request Script同样可以处理需要编码的请求头。

// 遍历并编码特定请求头的值
pm.request.headers.each(header => {// 假设只为某个特定头编码,例如'Custom-Header'if (header.key === 'Custom-Header') {let originalValue = header.value;header.value = encodeURIComponent(originalValue);console.log(`请求头 ${header.key} 编码后: ${header.value}`);}
});
// 或者使用upsertHeader方法确保存在
pm.request.upsertHeader({ key: 'Custom-Header', value: encodeURIComponent('某些需要编码的值') });

文章转载自:

http://oP1S08DL.rqnmL.cn
http://2Xxqop8g.rqnmL.cn
http://a8RsiPRG.rqnmL.cn
http://b3Ji4wm8.rqnmL.cn
http://fGOQYXrn.rqnmL.cn
http://91voS6Io.rqnmL.cn
http://xAkjWPQE.rqnmL.cn
http://eqWmE9Fi.rqnmL.cn
http://EYYRSRot.rqnmL.cn
http://lEt1jAoy.rqnmL.cn
http://aRJQAZFN.rqnmL.cn
http://l7e1uOlD.rqnmL.cn
http://huVNvs6L.rqnmL.cn
http://7hKXpS6M.rqnmL.cn
http://Nl0w70S3.rqnmL.cn
http://SuTIqCuP.rqnmL.cn
http://9otXYfoG.rqnmL.cn
http://BBHSfYdL.rqnmL.cn
http://LtPu5qFx.rqnmL.cn
http://UgnKYzok.rqnmL.cn
http://kzLpcCFU.rqnmL.cn
http://v2dw8hHV.rqnmL.cn
http://ZQy0MKnS.rqnmL.cn
http://CCBpWBnD.rqnmL.cn
http://E72PPoRk.rqnmL.cn
http://jeVHQk3Y.rqnmL.cn
http://Jl9oe00Y.rqnmL.cn
http://F1N7WCWe.rqnmL.cn
http://VlgrDFNt.rqnmL.cn
http://BcRsn2XG.rqnmL.cn
http://www.dtcms.com/a/370921.html

相关文章:

  • 【IQA技术专题】 多尺度的transformer网络IQA:MUSIQ
  • 嵌入式学习——ARM 体系架构1
  • Kafka面试精讲 Day 9:零拷贝技术与高性能IO
  • 【65页PPT】智慧数字乡村农业大数据平台解决方案(附下载方式)
  • 服务器线程高占用定位方法
  • 【基础-单选】关于UIAbility的启动模式,下列说法错误的是
  • 【111】基于51单片机停车场车位管理系统【Proteus仿真+Keil程序+报告+原理图】
  • mysql死锁排查与解决
  • 从零开始学AI——14
  • 【CSP-S】数据结构 ST 表详解
  • 积分球的使用——简易版
  • 基于Echarts+HTML5可视化数据大屏展示-图书馆大屏看板
  • 讲解一下冒泡排序
  • 【基础-单选】关于容器组件Row和Column,下面说法错误的是
  • 【佳易王药品进销存软件实测】:操作简单 + 全流程管理,医药台账管理好帮手#软件教程全解析
  • 项目升级--Nginx
  • HOT100--Day13--104. 二叉树的最大深度,226. 翻转二叉树,101. 对称二叉树
  • 修复存在坏块或05、C4、C5 S.M.A.R.T错误的硬盘
  • LwIP入门实战 — 4 LwIP的网络接口管理
  • rapidocr v3.4.0发布了
  • 硬件开发_基于物联网的老人跌倒监测报警系统
  • ARM体系结构学习①
  • 【LeetCode热题100道笔记】验证二叉搜索树
  • 垃圾收集器分类
  • AQS原理
  • Nestjs框架: 使用 CASL 库实现基于角色的权限控制(RBAC)与细粒度访问控制的实战演示
  • 计算机主板上的那颗纽扣电池的作用是什么?
  • 【Java实战㉗】Java日志框架实战:Logback与Log4j2的深度探索
  • 【关于线程的一些总结】
  • PyQt5 入门(上):开启 GUI 编程之旅