cURL POST --data-binary vs --form

时间:2012-12-28 01:03:59

标签: post curl

我有一个关于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"

2 个答案:

答案 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