好的,阿杰,我帮你整理一份 curl 命令详解,从基础用法到高级选项,覆盖各种场景,方便你直接参考。


curl 命令详解

curl 是 Linux / macOS / Windows 下的 命令行网络请求工具,支持 HTTP、HTTPS、FTP、SMTP 等协议。
常用于接口测试、文件下载/上传、网络调试等场景。


1️⃣ 基本语法

curl [options] [URL]

  • [options]:命令选项,用于指定请求方式、头信息、数据等
  • [URL]:请求目标地址

2️⃣ 常用选项

参数作用
-X指定请求方法(GET, POST, PUT, DELETE)
-H添加请求头(Header)
-d发送请求体数据(Data)
-F发送表单数据,支持文件上传
-o输出到文件
-O保存为服务器原文件名
-i显示响应头
-I仅显示响应头
-v显示详细请求/响应过程(调试用)
-u基本认证(用户名:密码)
-L跟随重定向
-s静默模式,不显示进度条
-k忽略 HTTPS 证书验证(开发测试用)

3️⃣ GET 请求示例

curl http://example.com

  • 带响应头:
curl -i http://example.com

  • 带 URL 参数:
curl "http://example.com/api?name=ajie&age=18"


4️⃣ POST 请求示例

  • 发送 JSON:
curl -X POST http://example.com/api \
     -H "Content-Type: application/json" \
     -d '{"name":"ajie","age":18}'

  • 发送表单:
curl -X POST http://example.com/login \
     -F "username=ajie" \
     -F "password=123456"


5️⃣ 文件上传/下载

  • 上传文件:
curl -X POST http://example.com/upload -F "file=@/path/to/file.txt"

  • 下载文件:
curl -o localfile.txt http://example.com/file.txt
curl -O http://example.com/file.txt  # 保留服务器文件名


6️⃣ 设置请求头

curl -H "Authorization: Bearer your_token" \
     -H "Accept: application/json" \
     http://example.com/api


7️⃣ 跟随重定向

curl -L http://example.com/redirect


8️⃣ HTTP 基本认证

curl -u username:password http://example.com/secure


9️⃣ 调试请求

curl -v http://example.com/api
curl --trace-ascii trace.txt http://example.com


10️⃣ 高级示例

功能命令示例
使用代理curl -x http://127.0.0.1:1080 http://example.com
使用 Cookiecurl -b "sessionid=123456" http://example.com
限制下载速度curl --limit-rate 100K http://example.com/file.zip
静默模式curl -s -o /dev/null http://example.com
HEAD 请求curl -I http://example.com
PUT 请求curl -X PUT -d '{"name":"ajie"}' http://example.com/api
DELETE 请求curl -X DELETE http://example.com/api/123

💡 使用技巧

  1. GET / POST / 上传下载 / 调试组合使用,快速完成接口测试
  2. HTTPS 测试时可用 -k 忽略证书
  3. 配合脚本可实现自动化接口测试或批量下载