在 Linux 下,curl
是最常用的命令行 HTTP 请求工具,可以方便地发送 POST 请求。下面给你一个超详细的总结(新手友好):
1. 基本语法
curl -X POST <URL> -d "<参数>"
-X POST
→ 指定请求方法为 POST(其实-d
默认就是 POST,可以省略)。-d
→ 表示请求体数据。
2. 发送表单数据(application/x-www-form-urlencoded)
curl -X POST http://example.com/login \
-d "username=jack" \
-d "password=123456"
等价于浏览器表单提交:
username=jack&password=123456
3. 发送 JSON 数据(application/json)
常见于 REST API:
curl -X POST http://example.com/api/login \
-H "Content-Type: application/json" \
-d '{"username":"jack","password":"123456"}'
-H
添加请求头。-d
里的 JSON 必须用单引号'
包裹(避免 Bash 转义问题)。
4. 从文件读取 POST 数据
比如有一个 JSON 文件 data.json
:
{
"username": "jack",
"password": "123456"
}
命令:
curl -X POST http://example.com/api/login \
-H "Content-Type: application/json" \
-d @data.json
@filename
→ 直接把文件内容作为请求体。
5. 携带自定义请求头
curl -X POST http://example.com/api/data \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"key":"value"}'
6. 上传文件(multipart/form-data)
curl -X POST http://example.com/upload \
-F "file=@/path/to/file.txt" \
-F "desc=测试文件"
-F
表示表单上传(含文件)。
7. 调试请求
curl -v -X POST http://example.com/api \
-d "test=123"
-v
→ 显示详细的请求和响应过程。-i
→ 显示响应头。
✅ 总结:
- 表单数据:
-d "a=1&b=2"
- JSON:
-H "Content-Type: application/json" -d '{"a":1}'
- 文件上传:
-F "file=@xxx.txt"
- 文件作为请求体:
-d @file.json
我帮你整理了一份 《Linux curl POST 请求速查表》PDF,涵盖了表单、JSON、文件上传、请求头等常见用法。
📄 点击下载 PDF
要不要我再做一份 curl GET/PUT/DELETE 的完整命令合集速查表?
发表回复