banner
约 900 字
3 分钟

curl 命令使用教程:接口调试与下载神器

摘要

curl 是命令行下的 HTTP 瑞士军刀。本教程依据 curl 官方文档整理,介绍 GET/POST 请求与自定义请求头、JSON 与表单提交、文件下载与断点续传(-O -C)、测耗时与跟随重定向,以及 --resolve、Cookie、HTTPS 证书等进阶用法。

curl 命令使用教程

curl 是命令行下的 HTTP 万能瑞士军刀:调试接口、下载文件、测网站通不通,都靠它。几乎每个操作系统都预装了 curl。本教程依据 curl 官方文档(everything curl)整理。

一、发请求与看响应

bash
curl https://example.com              # GET 请求,输出响应体
curl -i https://example.com           # 连响应头一起输出
curl -I https://example.com           # 只看响应头(HEAD 请求)
curl -s https://example.com           # 静默模式,不显示进度条
curl -L https://example.com           # 跟随 301/302 重定向

二、POST 与请求头

调试 API 最常用的三条:

bash
# POST JSON
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的token" \
  -d '{"name":"kunkun","age":18}'

# 提交表单
curl -d "username=admin&password=123" https://example.com/login
  • -H:添加请求头

  • -d:请求体(用了 -d 默认就是 POST)

  • -X:显式指定方法(PUT/DELETE 等)

三、下载文件

bash
curl -O https://example.com/file.zip            # 按原文件名保存
curl -o myname.zip https://example.com/file.zip # 自定义保存名
curl -C - -O https://example.com/big.iso        # 断点续传
curl -L -o go.tar.gz https://go.dev/dl/go1.22.0.linux-amd64.tar.gz

大文件配合 -# 可以显示进度条。

四、调试利器

测一个网站是否可达、耗时多少:

bash
curl -o /dev/null -s -w "HTTP %{http_code},总耗时 %{time_total}s\n" https://example.com

指定 DNS 解析结果(不污染线上就能测试新服务器):

bash
curl --resolve example.com:443:1.2.3.4 https://example.com

带 Cookie、模拟浏览器 UA:

bash
curl -b "session=abc123" -A "Mozilla/5.0" https://example.com

五、HTTPS 相关

bash
curl -k https://自签证书站点.com      # 跳过证书校验(仅测试用)
curl --cacert ca.pem https://内网站点.com  # 指定 CA 证书

六、总结

场景

命令

测网站通不通

curl -I -L 网址

GET 拿数据

curl 网址

POST JSON

-X POST -H "Content-Type: ..." -d '{...}'

下载文件

curl -O -L 网址

断点续传

curl -C - -O 网址

测耗时

-w "%{time_total}"

curl 与 wget 的分工:wget 更专注递归下载,curl 更擅长各种协议的请求构造。调试接口时 curl 是事实标准。

END