我正在使用 cURL 命令行实用程序将 HTTP POST 发送到 Web 服务。我想包含一个文件的内容作为 POST 的主体实体。我已经尝试使用-d </path/to/filename>
以及其他带有类型信息的变体,比如--data </path/to/filename> --data-urlencode </path/to/filename>
等等......文件总是附加的。我需要它作为身体实体。
问问题
234484 次
4 回答
449
我相信您正在寻找@filename
语法,例如:
剥离新线
curl --data "@/path/to/filename" http://...
保持新线
curl --data-binary "@/path/to/filename" http://...
curl 将从文件中删除所有换行符。如果要发送带有完整换行符的文件,请使用--data-binary
代替 --data
于 2013-04-09T21:41:42.830 回答
28
我知道问题已得到解答,但就我而言,我试图将文本文件的内容发送到Slack Webhook api,但由于某种原因,上述答案不起作用。无论如何,这就是最终对我有用的东西:
curl -X POST -H --silent --data-urlencode "payload={\"text\": \"$(cat file.txt | sed "s/\"/'/g")\"}" https://hooks.slack.com/services/XXX
于 2018-06-08T18:36:33.123 回答
10
在我的情况下,@
导致某种编码问题,我仍然喜欢我的旧方式:
curl -d "$(cat /path/to/file)" https://example.com
于 2020-07-01T06:26:22.657 回答
-3
curl https://upload.box.com/api/2.0/files/3300/content -H "授权: Bearer $access_token" -F file=@"C:\Crystal Reports\Crystal Reports\mysales.pdf"
于 2021-10-22T16:39:33.920 回答