需要透過從檔案傳送 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 配合使用。