cURL POST --data-binary vs --form



关于cURL的使用,我有一个简单的问题。在我的谷歌搜索或手册页中没有找到太多明确的答案。

在这里讨论使用--data--form发送文件/附件。我很想知道主要的区别是什么,在什么情况下你会选择--data-binary--form ?

POST "body"可以通过--data (for application/x-www-form-urlencoded)--form (for multipart/form-data)发送:

-F "foo=bar"                  # 'foo' value is 'bar'
-F "foo=<foovalue.txt"        # the specified file is sent as plain text input
-F "foo=@foovalue.txt"        # the specified file is sent as an attachment
-d "foo=bar"
-d "foo=<foovalue.txt"
-d "foo=@foovalue.txt"
-d "@entirebody.txt"          # the specified file is used as the POST body
--data-binary "@binarybody.jpg"

这个区别在HTML 4.01规范的表单章节中有解释:

application/x-www-form-urlencoded为默认内容类型。

内容类型"application/x-www-form-urlencoded"对于发送大量二进制数据或包含非ascii字符的文本是低效的。内容类型"multipart/form-data"应该用于提交包含文件、非ascii数据和二进制数据的表单。

这就是发送到服务器的数据类型的主要区别(application/x-www-form-urlencodedmultipart/form-data)

最新更新