需要通过从文件发送 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:// vs https://

“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 配合使用。