跳转至

curl 数据传输工具

概要: 学习经常打交道但总是记不起来怎么用的curl工具

创建时间: 2023.06.12 23:58:26

更新时间: 2023.07.28 23:09:05

curl是什么

curl是 Client URL 的缩写,是一种广泛应用的用于在命令行的数据传输工具。

-X 指定http method

curl不指定方法的情况下,默认时GET请求,如需指定,增加 -X 参数即可

Bash
curl -X -DELETE http://mysite/data  # 等同于 -XDELETE

-d 请求时携带数据

Bash
curl -X -POST http://mysite/data "{name:python,age:40}"  # 等同于 -XPOST

-H 指定http header

如果需要添加多个header,可以连续添加 -H

Bash
curl -H 'Content-Type:application/json' -H 'Cache-Control:max-age=0' https://
更多header信息参考Request header - MDN Web Docs Glossary: Definitions of Web-related terms | MDN

-I 获取网站header信息

Bash
curl -I https://www.bilibili.com/
image.png

-O 使用远程文件名作为本地文件名

Bash
curl -O https://img2.doubanio.com/view/subject/l/public/s34154883.jpg
image.png

-o 重命名下载到本地的文件名

Bash
curl -o book_fluent_python_2nd.jpg https://img2.doubanio.com/view/subject/l/public/s34154883.jpg
image.png

--limit-rate 限制传输速度

常用单位主要是k -> KBm -> MB,如果不设置单位,默认为字节Byte

Bash
curl -o debian11-amd64-dvd.iso --limit-rate 2m https://saimei.ftp.acc.umu.se/mirror/cdimage/archive/11.7.0/amd64/iso-dvd/debian-11.7.0-amd64-DVD-1.iso
image.png
image.png
此外关于速度和时间限制的还有如下参数

  • -Y (--speed-limit) 当传输速度低于此时停止传输
  • -y (--speed-time) 当传输时间大于此时停止传输

-C - 文件续传

Bash
curl -o debian11-amd64-dvd.iso -C - https://saimei.ftp.acc.umu.se/mirror/cdimage/archive/11.7.0/amd64/iso-dvd/debian-11.7.0-amd64-DVD-1.iso
image.png

-L 跟随重定向

curl默认不会跟随网站重定向,如需跟随重定向,需要增加此参数

Bash
curl -L -o debian11-amd64-dvd.iso https://cdimage.debian.org/mirror/cdimage/archive/11.7.0/amd64/iso-dvd/debian-11.7.0-amd64-DVD-1.iso
image.png

-v 啰嗦模式

curl将显示更详细的连接信息(如握手信息)

Bash
curl -v -L -o debian11-amd64-dvd.iso https://cdimage.debian.org/mirror/cdimage/archive/11.7.0/amd64/iso-dvd/debian-11.7.0-amd64-DVD-1.iso
image.png

--proxy 指定代理

语法形式: curl --proxy 协议://用户名:密码@代理地址:端口 URL

Bash
curl --proxy "http://lzwang:password@127.0.0.1:6789" https://google.com

-u指定用户名密码

对FTP服务器: curl -u 用户名:密码 -O ftp://server/file

-T 上传文件

对FTP服务器: curl -u 用户名:密码 -T ./myfile -O ftp://server

参考