🔍搜索⌘K

Apifox 入参加号被解析为空格?1 分钟解决 URL 编码问题

概述

在使用 Apifox 进行 API 测试时,很多同学会遇到一个诡异问题:当 Query 参数(如手机号、验证码、带特殊符号的字符串)中包含 “+” 时,发送请求后服务器接收到的 “+” 会被自动解析为空格,导致参数校验失败(比如 “13800138+000” 变成 “13800138 000”)。

这并非 Apifox 的 “bug”,而是源于 URL 编码的行业规范:在 HTTP 协议中,“+” 符号在 Query 参数里有特殊含义 —— 默认代表 “空格”(这是早期表单提交时的编码约定,延续至今)。Apifox 作为标准化的接口测试工具,会自动对 Query 参数进行 URL 编码,此时 “+” 会被编码为代表空格的 %20,最终导致服务器解析异常。

核心解决方案:手动替换 “+” 为 URL 编码值 “%2B”

既然 “+” 的默认编码会引发问题,只需绕过默认规则 —— 将参数中的 “+” 手动替换为它的 标准 URL 编码值 “%2B”,即可让服务器正确识别为 “+” 符号。

操作步骤(全程 1 分钟,无需修改工具配置)

1. 定位含 “+” 的 Query 参数:

在 Apifox 的接口编辑页,找到 “参数”→“Query 参数” 列表,确认需要包含 “+” 的参数(如 phone、verifyCode 等)。

2. 替换 “+” 为 “%2B”:

直接在参数值中修改,例如:

原参数值:13800138+000 → 改为 13800138%2B000; 原参数值:abc+123 → 改为 abc%2B123。

3. 发送请求验证结果:

点击 “发送” 按钮,通过 Apifox 的 “请求详情”→“原始请求” 查看编码后的 URL,确认 “%2B” 未被二次修改(示例原始 URL:https://api.example.com/user?phone=13800138%2B000);

同时查看服务器返回的响应,若参数解析正确(如手机号识别为 “13800138+000”),则问题解决。

示例对比:修改前后的参数变化

场景Apifox 中输入的参数值实际发送到服务器的编码值服务器最终解析结果
未处理(默认编码)13800138+00013800138%2000013800138 000(错误)
手动替换为 “%2B”13800138%2B00013800138%2B00013800138+000(正确)