如何使用curl将文件内容作为主体实体发送

ve7v8dk2  于 2021-06-04  发布在  Kafka
关注(0)|答案(3)|浏览(352)

我使用curl命令行实用程序将httppost发送到web服务。我想包含一个文件的内容作为文章的主体实体。我试过使用 -d </path/to/filename> 以及其他具有类型信息的变体,如 --data </path/to/filename> --data-urlencode </path/to/filename> 等。。。文件总是附加的。我需要它作为身体实体。

lp0sw83n

lp0sw83n1#

就我而言, @ 造成了某种编码问题,我还是喜欢我以前的方式:

curl -d "$(cat /path/to/file)" https://example.com
yquaqz18

yquaqz182#

我知道这个问题已经得到了回答,但在我的例子中,我试图将文本文件的内容发送到slackwebhook api,由于某种原因,上面的答案没有起作用。不管是谁,这就是我最后的诀窍:

curl -X POST -H --silent --data-urlencode "payload={\"text\": \"$(cat file.txt | sed "s/\"/'/g")\"}" https://hooks.slack.com/services/XXX
dxxyhpgq

dxxyhpgq3#

我相信你在找 @filename 语法,例如:
剥离新线

curl --data "@/path/to/filename" http://...

保留新线路

curl --data-binary "@/path/to/filename" http://...

=====
curl将从文件中删除所有新行。如果要完整地发送包含换行符的文件,请使用 --data-binary 代替--数据

相关问题