我使用HTTPie来发布一个
multipart / form-data请求(传递-f
选项)。它包括一个
文件字段(使用@
选项)。相应的部分
multipart请求有一个伪标头Content-Disposition
,但确实如此
没有伪标题Content-Type
。
如何为特定文件添加Content-Type
?
为了完整性,这是我现在发送的内容(如-p B
所示):
--xyz
Content-Disposition: form-data; name="file"; filename="file.txt"
Hello, world!
This is the content of the file.
--xyz
但这是我需要发送的内容:
--xyz
Content-Disposition: form-data; name="file"; filename="file.txt"
Content-Type: text/plain
Hello, world!
This is the content of the file.
--xyz
或者换句话说,就像CURL等效选项:-F "file=file.txt;type=text/plain"
。
答案 0 :(得分:2)
这对httpie来说是不可能的。有一个issue for it,有一些拉动请求要修复它,但还没有合并。
答案 1 :(得分:2)
这对我有用:
http -f POST :8080/submit-file metadata=@metadata.json files@file1.jpeg files@file1.jpeg
此文档帮助我:https://httpie.org/doc#file-upload-forms
=@
会让httpie以内容类型text/plain
发送它。
答案 2 :(得分:0)
我刚刚注意到multipart/form-data
的文档现在看起来像下面(末尾):
上载文件时,从文件中推断其内容类型 名称。您可以手动覆盖推断的内容类型:
$ http -f POST httpbin.org/post name ='John Smith'cv@'~/files/data.bin; type = application / pdf'
我不知道什么时候发生,但现在看来:
Content-Type
部分” 所以我一直在寻找! :-)