【发布时间】:2018-11-10 04:13:35
【问题描述】:
我有以下 curl 命令将文件上传到云 API。
curl -k -w %{http_code} -H "Content-Type:text/plain" --data-binary @\\path\to\file.txt https://api.somesite.com/endpoint
如果我直接将它输入到 cmd 控制台,这个 curl 命令可以正常工作。我需要让它在批处理文件中工作,但是当我将命令按原样放入批处理文件时,它无法解析命令(未指定 URL)。这似乎是由于“Content-Type:text/plain”周围的双引号引起的。在命令中包含它对于 api 能够处理我的文件至关重要。
根据this question 的回答,我尝试了几种不同的方法来转义双引号。这些是各种方法的结果。
^"Content-Type:text/plain^"
这个不上传文件,curl错误:没有指定URL!
\"Content-Type:text/plain\"
这样上传文件,curl报成功,但是api无法将文件识别为纯文本。
""Content-Type:text/plain""
这样上传文件,curl报成功,但是api无法将文件识别为纯文本。
\""Content-Type:text/plain\""
这个不上传文件,curl错误:没有指定URL!
所以我发现了很多失败的方法,但没有一种组合可以同时用于批处理、curl 和 api。我可以尝试其他逃避方法或任何其他建议吗?
【问题讨论】:
-
IMO 问题出在其他地方,您必须将
%%加倍,而我几乎要双引号curl -k -w %%{http_code} -H "Content-Type:text/plain" --data-binary "@\\path\to\file.txt" "https://api.somesite.com/endpoint"
标签: batch-file curl