curl 是跨平台命令行工具,用于客户端与服务器之间传输数据,支持 HTTP/HTTPS/FTP 等多种协议,是接口调试和网络传输的必备工具。
核心参数
请求方法
| 参数 | 说明 |
|---|
-X METHOD | 指定请求方法(GET/POST/PUT/DELETE) |
-d DATA | 发送 POST 数据 |
-F KEY=VALUE | 表单提交,支持文件上传 |
请求头
| 参数 | 说明 |
|---|
-H HEADER | 自定义请求头 |
-A UA | 设置 User-Agent |
-b COOKIES | 携带 Cookie |
输出控制
| 参数 | 说明 |
|---|
-o FILE | 保存响应到文件 |
-O | 按服务器文件名保存 |
-s | 静默模式 |
-i | 显示响应头+响应体 |
-I | 仅显示响应头 |
-v | 详细调试模式 |
-L | 跟随重定向 |
网络配置
| 参数 | 说明 |
|---|
-x PROXY | 设置代理 |
-k | 忽略 HTTPS 证书 |
-u USER:PASS | HTTP 基本认证 |
常用示例
GET 请求:
1
2
| curl https://api.example.com/user/1
curl -i https://api.example.com/user/1 # 显示响应头
|
POST 表单:
1
| curl -d "username=test&password=123" https://api.example.com/login
|
POST JSON:
1
2
| curl -X POST -H "Content-Type: application/json" \
-d '{"username":"test"}' https://api.example.com/login
|
文件上传:
1
| curl -F "file=@/path/to/file.png" https://api.example.com/upload
|
下载文件:
1
2
| curl -O https://example.com/file.zip
curl -C - -O https://example.com/large.zip # 断点续传
|
Cookie 管理:
1
2
| curl -b "session=abc" https://api.example.com/user
curl -c cookie.txt https://api.example.com/login # 保存 Cookie
|
调试:
1
| curl -v https://api.example.com # 详细输出
|
注意事项
- POST JSON 时必须指定
Content-Type: application/json - 生产环境禁用
-k - 敏感信息避免直接写在命令行
Comments