Curl 是一個非常強大的工具,可以用來和網路上的伺服器進行通訊。它支援很多協定,包括 HTTP、HTTPS、FTP、SMTP 等等。在這篇文章中,我們會介紹 Curl 的一些基本用法。
安裝 Curl
Curl 是一個開源軟體,可以在大部分的作業系統上安裝。在 Ubuntu 上,你可以使用以下指令安裝 Curl:
sudo apt-get install curl
在 macOS 上,你可以使用以下指令安裝 Curl:
brew install curl
在 Windows 上,你可以從 Curl 的官方網站下載安裝程式。
發送 HTTP 請求
要發送一個 HTTP GET 請求,你可以使用以下指令:
curl http://example.com
要發送一個 HTTP POST 請求,你可以使用 -X 選項:
curl -X POST http://example.com
要發送一個帶有參數的 HTTP GET 請求,你可以使用 ?:
curl "https://example.com?name=John"
要發送一個帶有參數的 HTTP POST 請求,你可以使用 -d 選項:
curl -X POST -d "name=John" http://example.com
下載文件
要下載一個文件,你可以使用 -o 選項:
curl -o filename.txt http://example.com/file.txt
要下載一個文件並保存到指定的路徑,你可以使用 -o 選項:
curl -o /path/to/filename.txt http://example.com/file.txt
上傳文件
要上傳一個文件,你可以使用 -F 選項:
curl -F "file=@example.txt" https://example.com/upload
設置 Header
要設置一個 Header,你可以使用 -H 選項:
curl -H "Content-Type: application/json" http://example.com
設置 User Agent
要設置 User Agent,你可以使用 -A 選項:
curl -A "Mozilla/5.0" http://example.com
設置 Cookie
要設置 Cookie,你可以使用 -b 選項:
curl -b "name=John" http://example.com
設置 Referer
要設置 Referer,你可以使用 -e 選項:
curl -e "http://example.com" http://example.com
設置 Timeout
要設置 Timeout,你可以使用 -m 選項:
curl -m 10 http://example.com
設置 Proxy
要設置 Proxy,你可以使用 -x 選項:
curl -x http://proxy.example.com:8080 http://example.com
設置 User Name 和 Password
要設置 User Name 和 Password,你可以使用 -u 選項:
curl -u username:password http://example.com
設置 Insecure
-k 會略過 TLS 憑證驗證。僅在明確了解風險的測試環境使用;一般請保留驗證,或用 --cacert 指定信任的 CA 憑證。
curl -k https://example.com
設置 Verbose
要設置 Verbose,你可以使用 -v 選項:
curl -v http://example.com
設置 Output
要設置 Output,你可以使用 -o 選項:
curl -o output.txt http://example.com
設置 Silent
要設置 Silent,你可以使用 -s 選項:
curl -s http://example.com
設置 Follow Redirect
要設置 Follow Redirect,你可以使用 -L 選項:
curl -L http://example.com
設置 Max Redirect
要限制重新導向次數,搭配 -L 使用 --max-redirs 選項:
curl -L --max-redirs 10 https://example.com
設置 Retry
要設置 Retry,你可以使用 --retry 選項:
curl --retry 3 http://example.com
設置 Retry Delay
使用 --retry 啟用重試後,可以用 --retry-delay 設定重試間隔秒數:
curl --retry 3 --retry-delay 5 https://example.com
設置 Retry Max Time
使用 --retry 啟用重試後,可以用 --retry-max-time 限制繼續啟動重試的時間窗口。這不會中斷已開始的傳輸;每次傳輸的時間上限另由 --max-time 控制。
curl --retry 3 --retry-max-time 60 --max-time 20 https://example.com
設置 Connection Timeout
要設置 Connection Timeout,你可以使用 --connect-timeout 選項:
curl --connect-timeout 10 http://example.com
限制整個傳輸的時間
--max-time(縮寫 -m)限制整個傳輸的總耗時,包括 DNS 解析、連線與資料傳輸,並非 DNS 專用的逾時設定。--connect-timeout 則限制連線階段,包括 DNS 查詢與 TCP、TLS 握手。
curl --max-time 10 http://example.com
設置 Data
要設置 Data,你可以使用 -d 選項:
curl -d "name=John" http://example.com
設置 Form
要設置 Form,你可以使用 -F 選項:
curl -F "name=John" http://example.com
設置 URL
要指定 URL,可以直接提供網址,或使用 --url 選項;-u 是帳號與密碼的選項。
curl --url https://example.com
參考:curl 官方手冊。