Curl
2024-01-23
筆記如何使用 Curl 進行各式 HTTP Protocol 以及各式網路協定的操作。
說明
取得 Response Header
curl https://sdwh.dev -I
也可以使用 --head
Follow Redirects (Location)
如果網址回應 301 或 302 轉導,配合自動轉導使用 -L
curl http://sdwh.dev -L
Custom User-Agent
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0" [URL]
此外可以搭配 ifconfig.me
這個網站服務,來 curl 回自己的 public IP 以及 User-Agent 等資訊。
curl ifconfig.me/ip
curl ifconfig.me/ua
curl ifconfig.me/all.json
完整 Request & Response (Verbose)
curl https://sdwh.dev -v
下載檔案 Output
curl https://sdwh.dev -o index.html
如果有憑證信任問題,可以搭配參數 -k
或者是 --insecure
進階應用
下以的指令可以只取得 Http Status Code。
curl -w "%{http_code}" https://sdwh.dev -s -o NUL
> 200
-w
可以自定義輸出的參數,包含下列可用的資訊
Parameter | Usage |
---|---|
%{url_effective} | 實際的 URL,包括任何重定向。 |
%{http_code} | HTTP Status Code |
%{time_total} | Requests Total Time, secs |
%{time_namelookup} | DNS resolve time, secs |
%{time_connect} | Connection time, secs |
%{time_pretransfer} | Time of from start to finish response, secs |
%{time_starttransfer} | Time of strat transfer, secs |
%{size_download} | Download bytes |
%{size_upload} | Upload bytes |
%{speed_download} | Download speed (bytes/sec) |
%{speed_upload} | Upload speed (bytes/sec) |
%{num_redirects} | Number of redirects |
%{ssl_verify_result} | SSL verify result |
%{content_type} | Server response content type |
-s
可以要求 Silent 輸出,並且搭配 -o
將 Reponse 導入至 NUL
。
RESTful
Post
curl -X POST -d "title=Curl&body=Interesting Command" https://jsonplaceholder.typicode.com/posts
Post with upload data
curl -X POST -F "file=@C:\tmp\1.txt" https://example.com/upload
Post With Header
curl -H "x-apikey: 000" -X POST -d "id=1&name=2" https://sdwh.dev/rest