通过Curl通过文件指定的数据发送POST请求
我需要从命令行通过Curl发出一个POST请求。 这个请求的数据位于一个文件中。 我知道通过PUT这可以用--upload-file
选项来完成。
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
你正在寻找--data-binary
参数:
curl -i -X POST host:port/post-file -H "Content-Type: text/xml" --data-binary "@path/to/file"
在上面的例子中, -i
打印出所有的头文件,这样你就可以看到发生了什么,而-X POST
明确表示这是一个文章。 这两个可以安全地省略,而不会改变电线上的行为。 文件的path需要以@
符号开头,所以curl
知道从文件读取。
如果您使用表单数据上传文件,其中必须指定参数名称,则可以使用:
curl -X POST -i -F parametername=@filename host:port/xxx
我需要从命令行通过Curl发出一个POST请求。 这个请求的数据位于一个文件中…
其他答案似乎不必要复杂。 所有你需要做的就是用@
来引导--data
参数:
curl -H "Content-Type: text/xml" --data "@path_of_file" host:port/post-file
例如,如果你有一个名为stuff.xml
的文件中的数据,那么你会做这样的事情:
curl -H "Content-Type: text/xml" --data "@stuff.xml" host:port/post-file
stuff.xml
文件名可以replace为要使用的文件的相对path或完整path: @./xml/stuff.xml
, @/var/tmp/stuff.xml
,…