参考 http://man.linuxde.net/curl
http://www.cnblogs.com/gbyukg/p/3326825.html
curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
下载
选项-o
将下载数据写入到指定名称的文件中,并可以使用--progress显示进度条:
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html
curl -O http://www.gnu.org/software/gettext/manual/gettext.html
下载限速
--limit-rate 1000B
可以使用的单位有 G, M, K, B
curl --limit-rate 10K -O https://dldir1.qq.com/qqfile/qq/QQ8.9.4/21603/QQ8.9.4.exe
get/post
默认curl使用GET方式请求数据,这种方式下直接通过URL传递数据
可以通过 --data/-d 方式指定使用POST方式传递数据
Post | | 举例 |
---|
curl -d | | curl -d "param1=value1&param2=value2" "http://www.baidu.com" |
json格式的post请求 | curl -l -H "Content-type: application/json" -X POST -d '{"carNum":"加油车测试"}' http://192.168.1.143:8080/busi/interface/deliveryOrderList | |
curl http://192.168.1.99:8081/webService/app/user
curl -u username https://api.github.com/user?access_token=XXXXXXXXXX
curl -l -H "Content-type: application/json" -X POST -d '{"carNum":"10010"}' http://192.168.1.143:8080/busi/interface/deliveryOrderList
curl -u username --data "param1=value1&param2=value" https://api.github.com
注:默认情况下,通过POST方式传递过去的数据中若有特殊字符,首先需要将特殊字符转义在传递给服务器端,如value值中包含有空格,则需要先将空格转换成%20,如:
curl -d "value%201" http://hostname.com
在新版本的CURL中,提供了新的选项 --data-urlencode,通过该选项提供的参数会自动转义特殊字符。
curl --data-urlencode "value 1" http://hostname.com
除了使用GET和POST协议外,还可以通过 -X 选项指定其它协议,如
curl -I -X DELETE https://api.github.cim
curl --form "fileupload=@filename.txt" http://hostname/resource