curl命令

命令说明

Curl 是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;

curl 提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等

命令语法

1
curl [options] [URL...]

参数详解

参数 说明
-i 显示请求头和获取的内容
-I (大写i)仅仅显示请求头
-H “name: value” (HTTP)添加一个http header(http请求头);
-H “name:” (HTTP)移除一个http header(http请求头);
-D (HTTP)转储http响应头到指定文件;
-c filename 返回的cookie存储到文件
-b name=data 【参考】 (HTTP)发送cookie数据到HTTP服务器,数据格式为:”NAME1=VALUE1; NAME2=VALUE2”; 如果行中没有“=”,将把参数值当作cookie文件名; 这个cookie数据可以是由服务器的http响应头“Set-Cookie:”行发送过来的;
-j (HTTP)告诉curl放弃所有的”session cookies”; 相当于重启浏览器;
-x host:port -x [protocol://[user:pwd@]host[:port 【参考】 使用HTTP代理访问;如果未指定端口,默认使用8080端口; protocol默认为http_proxy,其他可能的值包括: http_proxy、HTTPS_PROXY、socks4、socks4a、socks5; 如: –proxy 8.8.8.8:8080; -x “http_proxy://aiezu:123@aiezu.com:80”
–socks4 <host[:port]> –socks4a <host[:port]> –socks5 <host[:port]> 【参考】 使用SOCKS4代理; 使用SOCKS4A代理; 使用SOCKS5代理; 此参数会覆盖“-x”参数;
-L –location (HTTP/HTTPS)追随http响应头“Location:”定向到跳转后的页面; (在http响应码为3XX时使用,如301跳转、302跳转)
-s –silent 安静模式。不要显示进度表或错误消息;
-# –progress-bar 显示进度条;
-f –fail (HTTP)连接失败时(400以上错误)不返回默认错误页面,而是返回一个curl错误码“22”;
-S –show-error 安静模式下显示错误信息;
-o file –output file 将返回内容输出到文件。 如果是用过通配符获取多个url,可以使用“#”后跟“数字序号”,curl会自动将它替换对应的关键词,如:   curl “http://aiezu.com/{a,b}.txt" -o “#1.txt”;   将保存为:“a.txt”,“b.txt”;   curl “http://aiezu.com/{a,b}_[1-3].txt" -o “#1#2.txt”;   将保存为:a1.txt、a2.txt、a3.txt、b1.txt、b2.txt、b3.txt   如果要根据规则创建保存目录,参考:“–create-dirs” 指定“-”将定向到标准输出“如控制台”;
-O –remote-name 将返回内容输出到当前目录下,和url中文件名相同的文件中(不含目录);
–create-dirs 与“-o”参数配合使用,创建必要的本地目录层次结构
-d key1=value1 -d key2=value2 请求数据 默认post 请求
-G 将请求改为get请求
-X POST 修改请求方式 默认ge t 比如:curl www.baidu.com
–referer www.baidu.com 我们还可以在curl通过--referer选项来指定我们是从哪里跳转过来的: