linux下curl命令使用

curl是一个利用url规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载

Usage: curl [options...] <url>
-A/--user-agent <string>      设置用户代理发送给服务器
-b/--cookie <name=string/file>  cookie字符串或文件读取位置
-c/--cookie-jar <file>       操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>     断点续转
-D/--dump-header <file>          把header信息写入到该文件中
-e/--referer                 来源网址
-f/--fail                连接失败时不显示http错误
-o/--output            把输出写到该文件中
-O/--remote-name             把输出写到该文件中,保留远程文件的文件名
-r/--range <range>           检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                  静音模式。不输出任何东西
-T/--upload-file <file>      上传文件
-u/--user <user[:password]>  设置服务器的用户和密码
-w/--write-out [format]      什么输出完成后
-x/--proxy <host[:port]>     在给定的端口上使用HTTP代理
-#/--progress-bar            进度条显示当前的传送状态

 发送 POST 请求的数据体

# curl会以application/x-www-url-encoded 方式发送 POST 请求
# --data-binary:则保留文件中的回车符和换行符,不做任何转换
curl -X POST https://www.cnblogs.com  -d'login=test&password=123'

向服务器上传二进制文件

#curl 模拟Web页面中提交表单会,以 multipart/form-data 的方式发送POST请求,@后加文件名
curl -F 'file=@photo.png' https://www.cnblogs.com 

下载网页option:-o(小写)

curl https://www.cnblogs.com -o index.html

下载网页中的文件option:-O(大写)

curl -O http://www.test.com/hello.py
# 循环下载
curl -O http://www.test.com/dodo[1-5].JPG
# 分块下载
curl -r 0-100 -o dodo1_part1.JPG http://www.test.com/dodo1.JPG
# 断点续传
curl -C -O http://www.test.com/dodo1.JPG

显示下载进度条

curl -# -O http://www.test.com/dodo1.JPG

通过ftp下载文件

curl -O -u 用户名:密码 ftp://www.test.com/dodo1.JPG
curl -O ftp://用户名:密码@www.test.com/dodo1.JPG

测试网页返回值

curl -o /dev/null -s -w %{http_code} https://www.cnblogs.com

指定proxy服务器以及其端口

curl -x 192.168.100.100:1080 https://www.cnblogs.com

保存http的response里面的cookie信息

curl -c cookie.txt  https://www.cnblogs.com

保存http的response里面的header信息

curl -D header.txt https://www.cnblogs.com

向服务器发送 Cookie

curl -b cookiec.txt https://www.cnblogs.com

参数指定客户端的用户代理标头,即User-Agent

curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" https://www.cnblogs.com

添加 HTTP 请求的标头

curl -H 'Accept-Language:zh-CN,zh;q=0.9' https://www.cnblogs.com

将不输出错误和进度信息

curl -s https://www.cnblogs.com