Curl命令的data,data-ascii,data-binary,data-raw和d。。。Curl命令为HTTP POST⽅法提供了若⼲种设置数据的选项,这⾥⽐较⼀下。
1. ⾸先说明如下给出的选项的相同点
模拟Web页⾯中提交表单,⽤于POST请求
默认Content-type为application/x-www-form-urlencoded
选项的value如果是@a_file_name,表⽰数据来⾃⼀个⽂件
选项的value如果是-,表⽰读取stdin作为提交的数据,即从标准输⼊设备即时提供数据值
2. 不同点
1) -d,--data key=value
数据为纯⽂本数据。
value如果是@a_file_name,表⽰数据来⾃⼀个⽂件,⽂件中的回车符和换⾏符将被转换
⽰例:
2) --data-ascii <key=value>
完全等价于-d
3) --data-binary key=value
HTTP POST请求中的数据为纯⼆进制数据
value如果是@file_name,则保留⽂件中的回车符和换⾏符,不做任何转换
4) --data-raw key=value
@也作为普通字符串,不会作为⽂件名给出⽂件名的标志。即value如果是@file_name,只表⽰值为“@file_name”的字符串。
其他等价于-d
5) --data-urlencode key=value
先对数据进⾏URL编码,再发送给HTTP服务器,即对表单中的字段值进⾏URL编码后再发送。
curl命令发送post请求带参数为了兼容CGI,格式为“name+分隔符+content”,如下所⽰:
name=content,将content进⾏URL编码,然后提交给HTTP服务器
=content,同上,只是未给出引⽤的name
content,同上,注意content中不能包含=和@符号
name@filename,从⽂件filename中读取数据(包括换⾏符),将读取的数据进⾏URL编码,然后提交给HTTP服务器
@filename,同上
其他等价于-d
3. 补充-F, --form选项
模拟发送表单,默认即POST,且默认Content-Type:multipart/form-data。
⽰例:
参考链接:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。