如何使用 httpie 使用 http PUT 上传文件?

如何使用 httpie 使用 http PUT 上传文件?

对于一些网络服务器测试,我使用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

也可以看看:

相关内容