cURL 是一個命令行工具,用於發送和接收資料,特別是通過 URL。它支援多種協議(如 HTTP、HTTPS、FTP 等),常用於 API 測試和網路請求。以下是 cURL 的基本教學:
1. 安裝 cURL
大多數操作系統已預裝 cURL。如果沒有,可以通過以下方法安裝:
- Windows: 前往 cURL 官方網站 下載並安裝。
- macOS: 通過 Homebrew 安裝,執行
brew install curl。 - Linux: 大部分 Linux 發行版預裝 cURL,如果沒有,使用包管理器安裝,如
sudo apt install curl(Debian/Ubuntu)或sudo yum install curl(CentOS/Fedora)。
2. 基本用法
cURL 命令的基本語法如下:
curl [options] [URL]
例子:
- 發送 GET 請求:
curl https://api.example.com這會發送一個簡單的 GET 請求到指定的 URL,並將回應輸出到終端。
3. 常見用法範例
a. 發送 GET 請求
curl https://jsonplaceholder.typicode.com/posts
這將發送一個 GET 請求並獲取回應。回應內容會顯示在終端。
b. 發送 POST 請求
POST 請求通常用於將資料發送到伺服器:
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H "Content-Type: application/json" \
-d '{"title": "foo", "body": "bar", "userId": 1}'
這個範例向 API 發送一個 POST 請求,並傳遞 JSON 資料。-X POST 指定請求方法為 POST,-H 用來設置標頭,-d 傳送資料。
c. 使用查詢參數
在 GET 請求中使用查詢參數:
curl "https://jsonplaceholder.typicode.com/posts?userId=1"
這會發送一個帶有查詢參數 userId=1 的 GET 請求。
d. 儲存回應到檔案
如果你想將回應儲存到檔案而不是顯示在終端上,使用 -o 或 -O 參數:
curl -o output.json https://jsonplaceholder.typicode.com/posts
這會將回應儲存到名為 output.json 的檔案。
e. 發送帶有驗證的請求
有些 API 需要用戶名和密碼來驗證:
curl -u username:password https://api.example.com
這將使用基本驗證發送請求。
f. 設定標頭
許多 API 需要你設置特定的標頭,例如 API 金鑰:
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com
這裡使用 -H 參數設置了認證標頭。
g. 發送帶有檔案的 POST 請求
你可以用 -F 參數來發送表單數據或上傳檔案:
curl -F "file=@/path/to/file.txt" https://api.example.com/upload
這會將檔案 file.txt 上傳到指定的 URL。
4. 進階用法
a. 檢視完整回應(包括標頭)
使用 -i 來顯示回應標頭:
curl -i https://jsonplaceholder.typicode.com/posts
這會顯示 HTTP 回應標頭和回應內容。
b. 追蹤重定向
有些網站會重定向請求,使用 -L 參數可以自動追蹤重定向:
curl -L https://example.com
c. 設置自訂請求方法
除了常見的 GET 和 POST,你還可以設置其他 HTTP 方法(如 PUT、DELETE):
curl -X PUT https://api.example.com/resource/1 \
-H "Content-Type: application/json" \
-d '{"name": "updated name"}'
d. 模擬瀏覽器
使用 -A 指定 User-Agent,來模擬不同的瀏覽器:
curl -A "Mozilla/5.0" https://example.com
5. 調試與診斷
如果你想檢查請求發送的細節,可以使用 -v 參數來查看詳細資訊:
curl -v https://jsonplaceholder.typicode.com/posts
這會顯示完整的請求和回應過程,有助於排查問題。
6. cURL 的其他選項
-I:只顯示 HTTP 標頭(不包含回應內容)。--compressed:請求壓縮的回應以減少數據量。--retry:設置自動重試次數,當網路不穩定時很有用。
7. 結合腳本使用
你可以將 cURL 命令結合 Shell 腳本自動化任務,例如:
#!/bin/bash
curl -o response.json https://api.example.com/data
這個簡單的腳本會自動從 API 獲取資料並儲存到 response.json。
8. 資源
- 官方網站: https://curl.se/
- cURL 文檔: https://curl.se/docs/
學會了這些基礎操作後,你就可以使用 cURL 進行 API 測試、自動化下載和上傳等網路請求了!




