curl资源
- 本笔记整理于B站视频 【前后端必学】如何使用cURL命令?有哪些常见的用法?
- 本文只介绍常见命令,其余详细命令
man curl
即可
curl常见用法介绍
HTTP常见请求
curl默认发送GET请求
执行命令:
curl www.baidu.com
执行结果:
可以看到,这里和直接访问百度是一样的效果,只不过这里返回的是html文件,没有经过渲染。
-X 指定请求方法
可以通过 -X
来指定请求方法,这里使用,比如指定POST
curl -XPOST www.baidu.com
执行结果:
其他请求方法,参考HTTP 1.1规范。常见的附加HTTP请求包括PUT和DELETE,PROPFIND、COPY、MOVE等功能。
HTTP首部
-d 指定参数
还有可以通过 -d
参数来指定POST参数(该网站貌似需要魔法…不然很慢)
curl -XPOST https://jsonplaceholder.typicode.com/posts -d '{"title":"jay"}'
执行结果:
-H 指定头部
接下来,可以通过 -H
选项来指定 HTTP的首部,比如这里指定 Content-Type
为 application/json
curl -XPOST https://jsonplaceholder.typicode.com/posts -H 'Content-Type:application/json' -d '{"title":"jay"}'
执行结果同上。
-I 得到响应的全部首部
上面只是得到了网站设定的响应,可以通过 -I
参数来得到响应的完整首部
还是我们熟悉的百度,执行命令
curl -I www.baidu.com
执行结果:
文件处理
可以通过curl来做一些文件处理操作,比如下载
-O 下载文件
curl -O https://www.linuxprobe.com/docs/LinuxProbe.pdf
这里下载的是《Linux就该这么学》的电子版,命令执行完成后,可以看到pdf已经下载好了。
-o 下载文件后并重命名
curl -o Linux就该这么学 https://www.linuxprobe.com/docs/LinuxProbe.pdf
下载好并重命名了
这个选项在下载资源时较为有用,因为网上下载的资源名字一般都是乱码。
–limit-rate 限制下载速度
curl --limit-rate -o Linux就该这么学 https://www.linuxprobe.com/docs/LinuxProbe.pdf
-C - 恢复下载
curl -C - -o Linux就该这么学 https://www.linuxprobe.com/docs/LinuxProbe.pdf
注意:-C
后面需要接一个-
,因为-C
后面需要接参数,这里不需要接额外的参数,所以需要接一个-
连接与测试
-L 跟随重定向
有的网站做了重定向,比如B站,如果我们直接执行curl
curl www.bilibili.com
执行结果
可以看到,返回了状态码301
,那么执行 -L
进行跟随重定向:
curl -L www.bilibili.com
-v 显示底层连接信息
想得到更详细的底层连接信息,可以试用 -v
参数
curl -v -L www.bilibili.com
可以看到显示了握手信息,请求,响应头部信息,以及很多其他细节。
–proxy 代理访问
可以通过指定代理来访问目标URL
curl --proxy "协议://用户名:密码@代理端口:端口" URL
-u 指定用户名密码
curl支持基本所有的互联网协议,远远不止HTTP,比如需要从ftp服务器上下载文件,一般是需要指定用户的
curl -u 用户名:密码 -O ftp_server
-T 文件上传
curl -u 用户名:密码 -T 文件 ftp_server