命令说明
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 选项来指定我们是从哪里跳转过来的: |