我有一个关于cURL用法的简单问题。在我的Google搜索或手册页中找不到太多,以获得明确的答案。
在here中谈到在发送文件/附件时使用--data
与--form
。我很想知道主要区别是什么,在什么情况下你会选择--data-binary
VS --form
?
POST“正文”可以通过--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"
答案 0 :(得分:8)
差异在HTML 4.01 Specification section on Forms:
中解释application / x-www-form-urlencoded是默认的内容类型。
内容类型&#34; application / x-www-form-urlencoded&#34;发送大量二进制数据或包含非ASCII字符的文本效率很低。内容类型&#34; multipart / form-data&#34;应该用于提交包含文件,非ASCII数据和二进制数据的表单。
答案 1 :(得分:3)
这正是主要区别,即发送到服务器的数据类型(application/x-www-form-urlencoded
vs multipart/form-data
)