好的,阿杰,我帮你整理一份 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 |
使用 Cookie | curl -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 |
💡 使用技巧:
- GET / POST / 上传下载 / 调试组合使用,快速完成接口测试
- HTTPS 测试时可用
-k
忽略证书 - 配合脚本可实现自动化接口测试或批量下载
发表回复