Curl命令提供了若干个设置HTTP POST数据的选项,这里比较如下:
-d,–data <key=value>
将HTTP POST请求中的数据发送给HTTP服务器,与用户提交HTML表单时浏览器的行为完全一样。
默认Content-type为application/x-www-form-urlencoded
@file_name,表示数据来自一个文件,文件中的回车符和换行符将被转换
-,表示数据来自stdin,即标准输入设备
–data-ascii <key=value>
等价于-d
–data-binary <key=value>
HTTP POST请求中的数据为纯二进制数据
如果是@file_name,则保留文件中的回车符和换行符,不做任何转换
–data-raw <key=value>
不处理@字符,即@not_as_a_file_name
其他等价于-d
–data-urlencode <key=value>
先对数据进行URL编码,再发送给HTTP服务器,即对表单中的字段值进行URL编码然后再发送。
为了兼容CGI,格式为name=content:
- name=content,将content进行URL编码,然后发送给HTTP服务器 =content,同上
- content,同上,但是content中不能包含=,@符号
- name@filename,从文件中读取数据(包括换行符),将读取的数据进行URL编码,然后发送给HTTP服务器
- @filename,同上
其他等价于-d