需要通过从文件发送 JSON 数据来测试您的 API?这是卷曲命令。
POST JSON 文件到本地主机
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json
替换:
8080与您的港口/api/endpoint与您的 API 路径data.json与您的 JSON 文件路径
的 @ 符号告诉curl 从文件中读取。
PUT JSON 文件
命令
curl -X PUT http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json
与POST相同,只是使用PUT方法。
单行版本
命令
curl -X POST http://localhost:8080/api/endpoint -H "Content-Type: application/json" -d @data.json
一切都在一条线上。
显示响应标头
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json \
-i
-i 在输出中包含响应标头。
详细输出(调试)
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json \
-v
-v 显示完整的请求和响应详细信息。
有认证
基本身份验证:
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-u username:password \
-d @data.json
不记名代币:
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-token-here" \
-d @data.json
API 密钥:
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d @data.json
发送内联 JSON(无文件)
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d '{"key":"value","number":123}'
单引号阻止 shell 解释。
不同目录下的文件
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @/path/to/data.json
使用绝对或相对路径。
将响应保存到文件
命令
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json \
-o response.json
回复已保存至 response.json.
常用本地主机端口
- 3000: Node.js,React 开发服务器
- 8000: Python HTTP 服务器,Django
- 8080: 通用Java,通用开发
- 5000: Flask 默认
- 4200: Angular 开发服务器
- 3001: 替代 Node.js
故障排除
“连接失败”错误:
- API 未运行
- 端口号错误
- 检查
http://vshttps://
“curl:没有这样的文件”错误:
- JSON 文件不存在
- 文件路径错误
- 检查当前目录
pwd
意外的回应:
- 检查 JSON 语法
cat data.json - 在 jsonlint.com 验证 JSON
- 使用
-v标记以查看完整请求
JSON 文件示例
创建 data.json:
命令
{
"name": "Test User",
"email": "test@example.com",
"active": true,
"roles": ["admin", "user"]
}
然后运行:
命令
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d @data.json
底线
基本 POST 命令:
命令
curl -X POST http://localhost:8080/api/endpoint -H "Content-Type: application/json" -d @data.json
的 @ 符号从文件中读取。将 PUT 请求的 POST 更改为 PUT。添加 -v 用于调试。添加 -i 用于响应标头。
在开发过程中可与任何本地主机 API 配合使用。