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,你可以使用 -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 官方手冊