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

curl命令在Git Bash可用但在CMD、PowerShell报错问题排查

问题原因与解决方案

这个问题的核心是不同终端对引号和转义字符的解析规则差异——Git Bash基于MinGW,和Linux终端的引号处理逻辑一致,能正确识别你的命令;但CMD和PowerShell有自己的一套解析规则,直接复用Git Bash的命令就会出问题。

具体错误的根源:

  • curl: (6) Could not resolve host错误:
    在CMD和PowerShell中,你用的"(HTML转义的双引号)不会被识别为引号,反而被当成普通字符串。再加上CMD不把单引号'当作字符串边界,导致终端把Content-Type: application/json拆成了application作为单独的主机名,后面的Val 1,b等也被错误解析成了要访问的主机,自然就出现无法解析主机的错误。

  • curl: (3) [globbing] unmatched close brace/bracket错误:
    PowerShell默认会解析大括号{},把它当作通配符或者脚本块的标记,而不是curl请求体的一部分,所以会报括号不匹配的错误。

针对不同终端的修正命令:

适用于CMD的命令

curl -X POST http://localhost:5678/api/findgen -H "Content-Type: application/json" -d "{\"a\": \"Val 1\",\"b\": \"Val 2\",\"c\": \"Val 3\",\"d\": \"Val 4\"}" -o "file.json"

CMD里要用双引号包裹参数,内部的双引号需要用反斜杠\转义,同时要去掉原来的HTML转义"。

适用于PowerShell的命令

有两种靠谱的写法:

  1. 用单引号包裹请求体(PowerShell中单引号内部的内容会原样传递,不会被解析):
curl -X POST http://localhost:5678/api/findgen -H "Content-Type: application/json" -d '{"a": "Val 1","b": "Val 2","c": "Val 3","d": "Val 4"}' -o "file.json"
  1. 用PowerShell的专用转义符反引号`(注意是键盘左上角的反引号,不是单引号)转义内部双引号:
curl -X POST http://localhost:5678/api/findgen -H "Content-Type: application/json" -d "{`"a`": `"Val 1`",`"b`": `"Val 2`",`"c`": `"Val 3`",`"d`": `"Val 4`"}" -o "file.json"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:57:46