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

使用curl -d参数发起POST请求出现unexpected token错误如何解决?

问题根源

你遇到的报错是Windows环境下curl.exe的引号解析规则导致的:

  • Windows的cmd、PowerShell默认不支持单引号作为字符串参数的包裹符,你用单引号包裹POST请求的JSON body时,系统会把单引号识别为参数内容的一部分,同时直接吞掉JSON内部的所有双引号,最终提交到服务端的是没有任何引号的非法JSON,和你报错里展示的无引号内容完全吻合。
解决方案

方案1:最通用、不易出错的文件读取法(推荐)

把你的JSON请求体单独存为一个文件,比如命名为data.json,文件内容直接写你原本的正确JSON即可,不需要额外转义:

{
    "status" : ["sudan"],
    "export_settings" : {
        "format": "json",
        "model": "modelX"
    }
}

然后修改curl命令,用-d @data.json直接读取文件内容作为请求体:

curl.exe -k -H "Token:THisisarealtoken123" -H "Content-type:application/json" "https://api.deftesla.com/data_export" -X POST -d @data.json

该方案在cmd、PowerShell环境下都可以直接运行,不需要处理任何引号转义。

方案2:cmd环境直接传JSON

把包裹JSON的单引号替换为双引号,JSON内部的所有双引号用反斜杠\转义即可,示例命令:

curl.exe -k -H "Token:THisisarealtoken123" -H "Content-type:application/json" "https://api.deftesla.com/data_export" -X POST "{\"status\":[\"sudan\"],\"export_settings\":{\"format\":\"json\",\"model\":\"modelX\"}}"

方案3:PowerShell环境直接传JSON

在curl命令前加停止解析符--%,再配合内部双引号转义即可:

curl.exe --% -k -H "Token:THisisarealtoken123" -H "Content-type:application/json" "https://api.deftesla.com/data_export" -X POST "{\"status\":[\"sudan\"],\"export_settings\":{\"format\":\"json\",\"model\":\"modelX\"}}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:45:03