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

CURL调用第三方API时密码含&符号被转为布尔值如何解决

问题根因
  • 核心触发原因是Shell命令行的特殊字符解析逻辑:你在终端直接执行curl命令时,未对请求体做特殊字符隔离,&会被Shell识别为后台进程分隔符,直接截断请求内容,导致发送到服务端的JSON结构被破坏,才会出现异常解析为布尔键值对的问题。Postman发送请求不会经过Shell解析,因此可以正常传递原始密码。
  • 你提供的请求JSON本身存在语法错误:包含非标准的PHP风格数组语法array:1、=>,同时缺少必要的字段分隔逗号,会进一步加剧服务端的JSON解析异常。
修复方案
  • 首先修正为标准合法的JSON格式,补全分隔逗号,删除非标准语法:
{
  "auth_token": "eyJhbGciOiJSUzI1NiIsInR5cC",
  "data": {
    "enabled": true,
    "sip": [
      {
        "password": "O5t[&[ec"
      }
    ]
  }
}
  • curl调用时使用单引号完整包裹请求体内容,避免Shell解析其中的特殊字符,示例命令如下:
curl -X POST <你的第三方API请求地址> \
  -H "Content-Type: application/json" \
  -d '{
    "auth_token": "eyJhbGciOiJSUzI1NiIsInR5cC",
    "data": {
      "enabled": true,
      "sip": [
        {
          "password": "O5t[&[ec"
        }
      ]
    }
  }'
  • 更稳妥的方案是将请求体写入独立JSON文件,通过curl的@语法直接读取文件内容,彻底规避Shell的特殊字符解析问题:
    1. 将修正后的JSON保存为request.json文件
    2. 执行如下curl命令:
    curl -X POST <你的第三方API请求地址> \
      -H "Content-Type: application/json" \
      -d @request.json
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:06:01