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

如何在Postman中生成URL编码请求及配置预请求脚本?

在Postman中发送URL编码请求的解决方法

问题描述

我需要在Postman中发送URL编码格式的请求,示例编码后内容为:

notifications%3D%0A%5B%7B%22clientFileUuid%22%3A%20%22123456-fc21-496d-96d4-dfgfdgdfgfgd%22%2C%22id%22%3A%2212345678%22%2C%20%22date%22%3A%20%222023-12-04T09%3A31%3A02.678871Z%22%20%2C%22event%22%3A%22ACCEPTATION%22%2C%20%22externalId%22%3A%20%22222222222-fc21-496d-96d4-a00bd36a0be0%22%7D%5D

对应的解码形式为:

notifications=
[{"clientFileUuid": "123456-fc21-496d-96d4-dfgfdgdfgfgd","id":"12345678", "date": "2023-12-04T09:31:02.678871Z" ,"event":"ACCEPTATION", "externalId": "222222222-fc21-496d-96d4-a00bd36a0be0"}]

尝试过x-www-form-urlencoded变量和预请求脚本但未成功,请问如何将解码后的请求转为编码形式,是否可通过预请求脚本实现?


解决方法

方法1:直接使用Postman原生x-www-form-urlencoded功能

这是最省心的方式,无需额外脚本:

  • 打开请求的Body标签页,选择x-www-form-urlencoded选项
  • 在键值对列表中,添加一条记录:
    • 键:notifications
    • 值:填入解码后的JSON数组(包含换行也没问题,Postman会自动处理编码):
      [{"clientFileUuid": "123456-fc21-496d-96d4-dfgfdgdfgfgd","id":"12345678", "date": "2023-12-04T09:31:02.678871Z" ,"event":"ACCEPTATION", "externalId": "222222222-fc21-496d-96d4-a00bd36a0be0"}]
      
  • 发送请求时,Postman会自动将该键值对编码为符合application/x-www-form-urlencoded规范的格式,自动处理换行、引号等特殊字符。

方法2:通过预请求脚本手动编码

如果需要自定义编码逻辑,可通过预请求脚本实现:

  1. 切换到请求的Pre-request Script标签页,粘贴以下代码:
    // 定义需要编码的notifications内容(可替换为Postman变量,如pm.variables.get("notifications"))
    const rawNotifications = `
    [{"clientFileUuid": "123456-fc21-496d-96d4-dfgfdgdfgfgd","id":"12345678", "date": "2023-12-04T09:31:02.678871Z" ,"event":"ACCEPTATION", "externalId": "222222222-fc21-496d-96d4-a00bd36a0be0"}]
    `;
    // 对内容进行URL编码
    const encodedValue = encodeURIComponent(rawNotifications);
    // 拼接成完整的URL编码请求体
    const encodedBody = `notifications=${encodedValue}`;
    // 设置请求体为编码后的内容
    pm.request.body.raw = encodedBody;
    // 确保Content-Type头正确
    pm.request.headers.upsert({key: 'Content-Type', value: 'application/x-www-form-urlencoded'});
    
  2. 切换到Body标签页,选择raw选项,格式选Text即可(脚本会自动填充编码后的内容)
  3. 发送请求,脚本会自动完成编码并设置请求参数。

常见问题排查

如果之前用x-www-form-urlencoded失败,大概率是操作有误:

  • 不要把整个notifications=xxx字符串作为值填入键值对,应该只把JSON数组放在值的位置,键设为notifications
  • 检查值的格式是否正确,确保JSON数组没有语法错误

内容的提问来源于stack exchange,提问作者Morgan Forever

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:37:10