对于一些网络服务器测试,我使用curl进行文件上传,如下所示:
$ curl --silent --digest --user user:pass --upload-file filename http://server/dir/
现在我尝试使用 httpie 来归档相同的功能。尝试过类似的东西:
$ http --auth-type digest --auth user:pass PUT http://server/dir/
但找不到传递文件名进行上传的参数。尝试例如这个
$ http --auth-type digest --auth user:pass PUT http://server/dir/ A=B
结果是内容{"A": "B"}
将作为http请求主体传递,但我想将(可能是二进制)文件的原始内容作为请求主体传递(就像使用curl一样)。
是否有办法也使用 httpie 来做到这一点?
(我在 Kubuntu 16.04 主机上使用 httpie 0.9.2 进行了测试。)
答案1
好吧,深入研究 httpie 文档,发现有两种方法来传递原始正文数据。
通过管道或输入重定向。 httpie 从 stdin 读取正文数据:
$ cat filename | http --auth-type digest --auth user:pass PUT http://server/dir/filename
或者
$ http --auth-type digest --auth user:pass PUT http://server/dir/filename <filename
或@
像这样使用该参数:
$ http --auth-type digest --auth user:pass PUT http://server/dir/filename @filename
也可以看看: