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