预览图片

curl 使用说明

guide
cli

curl 是一个功能极其强大的命令行工具,它的基本语法非常简单:

bash
curl [options] [URL...]

获取网页内容

直接在控制台打印网页内容。

bash
curl http://example.com

-L 跟随 301/302 等重定向响应。

bash
curl -L http://www.example.com

-i 显示响应头信息。

bash
curl -i http://example.com
# [响应 Header]
# [响应内容]

-I 仅显示响应头信息。

bash
curl -I http://example.com
# [响应 Header]

-v 显示详细通信过程,包括DNS解析、建立连接、发送的请求头和收到的响应头到网页正文整个通信过程的详细信息。

bash
curl -v http://example.com
# [DNS 解析]
# [TCP 连接]
# [TLS 握手]
# [HTTP 请求]
# ……
# [HTTP 响应]

下载文件

-o (小写)指定文件名保存。

bash
curl \
  -o local-file.zip \
  http://example.com/remote-file.zip

-O (大写)使用远程文件名保存。

bash
curl -O http://example.com/remote-file.zip

-C - 断点续传。

bash
curl -C - -O http://example.com/large-file.zip

发送 HTTP 请求

curl 默认就是 GET 请求。

bash
curl "http://httpbin.org/get?name=Tom&age=25"

发送 POST 请求,需要设置参数:

-X 指定请求方法:GET / POST / PUT / DELETE 等。

-d 发送数据。

bash
curl \
  -X POST \
  -d "name=Tom&age=25" \
  http://example.com/resource

发送 JSON 数据,注意必须设置 Content-Type 请求头,因为默认的 Content-Typeapplication/x-www-form-urlencoded

-H 指定请求头,可重复使用添加多个。

bash
curl \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"name":"Tom", "age": 25}' \
  http://example.com/api/users

@ 可以在 curl 参数中引用文件路径:

比如要发送的数据很复杂,可以保存到文件,然后通过 @ 引用文件路径。

bash
curl \
  -X POST \
  -H "Content-Type: application/json" \
  -d @data.json \
  http://example.com/api/users
json
{
  "name": "Tom",
  "age": 25
}

如果要发送的请求头比较多,也可以保存到文件(需要 curl 7.55.0+)。

bash
curl \
  -X POST \
  -H @headers.txt \
  -d @data.json \
  http://example.com/api/users
txt
User-Agent: MyClient
Authorization: Bearer abc123
Accept: application/json
json
{
  "name": "Tom",
  "age": 25
}

-F 可以模拟表单上传文件,这里的 @ 与前面描述的作用一样。

bash
curl \
  -F "[email protected]" \
  http://example.com/upload

其他参数

-s 静默模式,不输出任何非请求结果本身的任何信息。

主要作用就是只输出 HTTP 响应体,可以配合管道传输干净的数据,不会出现任何打印给人类阅读的信息或提示。

如果请求在底层连接阶段就失败了(例如 DNS 解析失败、无法连接到服务器、SSL 握手报错),将不会输出任何内容。

bash
curl -s http://example.com
# [响应内容]

-# 下载时显示进度条。

bash
curl -# -O http://example.com/file.zip
# ######################## 100.0%

-x 指定 HTTP 代理服务器进行连接。

bash
curl \
  -x http://proxy.example.com \
  http://example.com

-k 当访问自签名证书的HTTPS网站时,可以用此参数忽略证书错误。

bash
curl -k https://example.com

--limit-rate 限制下载速度,单位为 B / K / M / G

bash
curl \
  --limit-rate 1M \
  -O \
  http://example.com/file.zip
—— 发布于 2026-07-24
[ Powered by VitePress ][ 2021-2026 © Liang ]