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-Type 为 application/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/usersjson
{
"name": "Tom",
"age": 25
}如果要发送的请求头比较多,也可以保存到文件(需要 curl 7.55.0+)。
bash
curl \
-X POST \
-H @headers.txt \
-d @data.json \
http://example.com/api/userstxt
User-Agent: MyClient
Authorization: Bearer abc123
Accept: application/jsonjson
{
"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