在 cURL 中,GET 和 POST 请求是最常用的两种 HTTP 方法,它们的使用场景和参数配置有所不同。
GET 请求
GET 请求用于获取数据,参数通常附加在 URL 中。
bash# 基础 GET 请求 curl https://api.example.com/users # 带查询参数 curl "https://api.example.com/users?page=1&limit=10" # 带请求头 curl -H "Authorization: Bearer token123" \ -H "Accept: application/json" \ https://api.example.com/users # 显示响应头信息 curl -i https://api.example.com/users # 仅显示响应头 curl -I https://api.example.com/users
POST 请求
POST 请求用于提交数据,需要使用 -X POST 指定方法,-d 传递数据。
bash# 发送 JSON 数据 curl -X POST https://api.example.com/users \ -H "Content-Type: application/json" \ -d '{"name":"张三","email":"zhangsan@example.com"}' # 发送表单数据 curl -X POST https://api.example.com/login \ -d "username=admin&password=123456" # 从文件读取数据 curl -X POST https://api.example.com/upload \ -H "Content-Type: application/json" \ -d @data.json # 上传文件 curl -X POST https://api.example.com/upload \ -F "file=@/path/to/file.pdf"
关键区别
| 特性 | GET | POST |
|---|---|---|
| 数据位置 | URL 参数 | 请求体 |
| 数据大小 | 受 URL 长度限制 | 无限制 |
| 安全性 | 参数可见 | 相对安全 |
| 缓存 | 可被缓存 | 不缓存 |
| 幂等性 | 幂等 | 非幂等 |
常用参数说明
-X或--request:指定 HTTP 方法-H或--header:添加请求头-d或--data:发送数据-F或--form:上传表单/文件-i:显示响应头和内容-I:仅显示响应头