![6ce2bcc740ef1debfcf346933851bd9e.png](https://i-blog.csdnimg.cn/blog_migrate/4717633253389c8e09e0cc6a0e5b5236.jpeg)
零、 curl命令介绍
curl是用于在服务器之间传输数据的命令行工具,可以下载或者上传文件 、获取服务器内容、调用服务器接口等等。并且curl工具支持多种协议,包括:DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP.
用法:
curl [option] URL
![0da0b80b8d3bf25c03420285ea4b1733.png](https://i-blog.csdnimg.cn/blog_migrate/6cb3d2a13f1b950095e28b98179fc945.jpeg)
一、下载并保存到文件
在控制台输出指定url的内容
curl https://www.timewentby.com
将url中的内容保存到文件timewentby.com 文件中
curl http://www.timewentby.com > timewentby.com
![f5c88846046ad4de5241138a67e0985c.png](https://i-blog.csdnimg.cn/blog_migrate/a8c7b1fb2983098a7c8f8a3353ec6876.jpeg)
同时我也可以使用 -o 选项来保存指定的文件
效果同上
curl -o timewenby.html https://www.timewentby.com
![847c2d4dbb965bb5d8df81c4630645e6.png](https://i-blog.csdnimg.cn/blog_migrate/21628c40e96e9a803b9071bb60742629.jpeg)
我们也可以使用 -O (大写的O),来保存文件不过保存的文件名为url最后的文件名或者会报错。
本案例中下载的文件名为882.html
curl -O https://timewentby.com/linux/882.html
![d18a914c3311229949deaa3be6eddf28.png](https://i-blog.csdnimg.cn/blog_migrate/be8a475b95a88b754d2c51e24fbc76ec.jpeg)
![d0d5da08f345cc5338046e77f5c9750a.png](https://i-blog.csdnimg.cn/blog_migrate/638547db4ddcd729d74c4137800546cc.jpeg)
二、静默输出
如果你不想curl显示处理的详情或者错误信息,请使用 -s 选项吧。
例如:我们使用获取一个不存在的域名
curl iloveyou520.top
![4892515ff65cd92c6e7934fcb6b09a89.png](https://i-blog.csdnimg.cn/blog_migrate/935442baa9930a3483b8f8d187aab158.jpeg)
使用 -s 以后
curl -s iloveyou520.top.com
![4061083c3ab3f438ff411fe4e7b09b2d.png](https://i-blog.csdnimg.cn/blog_migrate/4a601c429a41b09ca507d189bd836049.jpeg)
三、 同时下载多个文件
只显示错误信息不显示其他任何详情(这是curl默认的放肆),可以使用 -s -S
curl -s -S https://www.timewentby.com
同时下载两个文件 使用多个 -O (大写O)
curl -O https://curl.haxx.se/docs/manpage.html -O https://curl.haxx.se/docs/manual.html
![a39b777c47262b1825f36f138b47977a.png](https://i-blog.csdnimg.cn/blog_migrate/278aedf6a91777c562a6403fd47ec78d.jpeg)
如果使用 -o(小写o),请在-o后面跟要保存的文件名。
四、处理URL转发
当我们访问的域名存在302转发的使用默认是访问不到的,可以使用-L 选择加入转发
curl -L timewentby.com
![cfdc7ec9e56968a95251b686431161eb.png](https://i-blog.csdnimg.cn/blog_migrate/965551c19d57ee38928cdf44cfd6b94b.jpeg)
五、显示调试信息
$ curl -v timewetnby.com$ curl --trace info timewentby.com
六、 显示请求头信息
a . 只显示请求头信息
curl -I https://timewentby.com
![ae7d4ea0ed2ddd0c0b061f682dceaba8.png](https://i-blog.csdnimg.cn/blog_migrate/16c1b9e3a6c9de60f4d4432f8f81baa1.jpeg)
b. 既显示请求头信息同时也显示内容
curl -i https://timewentby.com
![d540fd01348a2be6e6d6b51833d233cd.png](https://i-blog.csdnimg.cn/blog_migrate/23ae5a417bc8b05dc7405c4798e599e5.jpeg)
七、 发送POST请求
-H : 指定发送header参数,这里是指定Content-Type:application/json
-X :执行请求方法,可以是GET、POST、PUT、DELETE等,默认为GET
-A 或者 --user-agent : 指定 user-agent,例如:-A "Mozilla/5.0 (Android; Mobile; rv:35.0) Gecko/35.0 Firefox/35.0"
--data 或者 -d : 指定发动给服务器的数据,如果使用--data或者-d,则默认发送方法为POST。 默认的 content-type application/x-www-form-urlen‐coded。
可以使用多个-d,例如 -d "name=zxy" -d "age=18