从Postman导出的Curl命令无法正常运行该如何解决?
问题原因
- URL路径错误:导出的curl命令中请求地址
https://172.25.128.114/api/iban/term/list末尾额外携带了一个空格,服务端会将空格识别为请求路径的一部分,无法匹配到对应的接口路由,这是最常见的导出后执行失败的原因。 - 转义字符未还原:导出内容里的
"是HTML编码后的双引号标记,如果直接复制原始导出内容执行,这些转义字符不会被自动还原,会导致URL、请求体JSON格式异常。 - 环境引号不兼容:如果在Windows系统的CMD或PowerShell中执行该命令,Windows原生Shell不支持单引号
'作为参数分隔符,会把Header、请求体等参数错误拆分,导致解析失败。 - 会话凭证过期:命令中携带的
JSESSIONID是临时会话凭证,若导出命令和Postman中成功请求的间隔过长,该凭证已经失效,会触发接口鉴权失败报错。
可行解决方法
- 修正基础参数:先删除URL末尾的多余空格,将所有
"替换为普通双引号,修正后的基础命令框架如下:
curl --insecure --location --request POST "https://172.25.128.114/api/iban/term/list" --header 'Accept: application/json' --header 'X-Forwarded-For: 81.12.112.243' --header 'Authorization: Basic a2FzaGVmdXNlcjpFbmVhbWlAMTIzNDU=' --header 'Content-Type: application/json' --header 'Cookie: JSESSIONID=B10D83AE3D70741D637BA3C2E3F1FB24' --data-raw '{ "iban":"IR220540202902540062587008","page" : 1 }'
- 适配不同执行环境:
- Linux/Mac的bash/zsh环境:上述修正后的命令可直接执行
- Windows CMD环境:将所有单引号替换为双引号,请求体JSON内部的双引号前加反斜杠转义,请求体部分修改为
--data-raw "{ \"iban\":\"IR220540202902540062587008\",\"page\" : 1 }"即可 - Windows PowerShell环境:在curl命令前添加
--%前缀,即可让PowerShell停止解析特殊字符,直接传递参数给curl执行
- 更新会话凭证:如果修正后仍然提示鉴权失败,在Postman中重新发送一次成功的接口请求,再重新导出curl命令,替换过期的
JSESSIONID即可。
内容的提问来源于stack exchange,提问作者Tohid Makari
相关产品推荐
相关产品推荐

