curl是一種命令列工具,作用是發出網路請求,然後得到和提取資料,同時支援檔案上傳和下載,所以是綜合的請求傳輸工具。
檢視網頁
檢視網頁原始碼
curl https://juejin.im
curl https://juejin.im:8888
複製程式碼
-L 檢視網站存在重定向
curl -L http://juejin.im
複製程式碼
-o 儲存網頁原始碼
curl -o [檔名] https://juejin.im # -o:將檔案儲存為命令列中指定的檔名的檔案中
curl -O URL1 -O URL2 # -O:使用URL中預設的檔名儲存檔案到本地。 同一站點下多個檔案,curl會嘗試重用連結(connection)
複製程式碼
-C 斷點傳輸
curl -O http://www.gnu.org/software/gettext/manual/gettext.html # 當檔案在下載完成之前結束該程式
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html # 通過新增-C選項繼續對該檔案進行下載,已經下載過的檔案不會被重新下載
複製程式碼
-i 顯示響應頭部資訊
curl -i https://juejin.im # `-i` 顯示http response的頭部資訊
複製程式碼
抓包除錯
-v 顯示整個通訊過程,用於除錯
curl -v https://juejin.im
複製程式碼
--trace 請求抓包,輸出原始的二進位制資料
curl --trace output.txt https://juejin.im # 原始資料
curl --trace-ascii output.txt https://juejin.im # 經過 ascii 編碼的原始資料
複製程式碼
-s 隱藏、顯示錯誤資訊
curl -s https://juejin.im 不輸出錯誤資訊、進度資訊
curl -S https://juejin.im 只輸出錯誤資訊
複製程式碼
--limit-rate 限制請求響應頻寬,模型網路環境
curl --limit-rate 100k https://juejin.im #模擬頻寬100k/s
curl --limit-rate 200b https://juejin.im #模擬頻寬200b/s
複製程式碼
模擬請求
傳送GET請求
curl https://juejin.im
複製程式碼
傳送POST請求 --data [引數]
curl -X POST --data "data=xxx" https://juejin.im
curl -X POST --data "@data.json" https://juejin.im # 讀取data.json資料,傳送請求
curl -X POST --data-urlencode "data=xxx" https://juejin.im # 引數經過表單編碼,避免符號被轉義
複製程式碼
傳送RESTful請求
curl -X GET https://juejin.im # 預設GET
curl -X POST https://juejin.im
curl -X PUT https://juejin.im
curl -X DELETE https://juejin.im
複製程式碼
--form上傳檔案
curl --form upload=@[local_filepath] --form press=OK https://juejin.im
curl -F 'file=@[local_filepath]' https://juejin.im # 與 --form upload=@[local_filepath] --form press=OK 等效
curl -F 'file=@[local_filepath];type=image/png' https://juejin.im # MIME 型別 預設為 application/octet-stream
複製程式碼
--header 新增請求頭部資訊
curl --header "Content-Type:application/json" https://juejin.im
複製程式碼
--proxy 代理
curl --proxy 'http://juejin.im' https://juejin.im
複製程式碼
--referer 表明來源[防盜鏈]
curl --referer http://juejin.im https://juejin.im
複製程式碼
--user-agent 使用者裝置資訊
curl --user-agent "[User Agent]" https://juejin.im
# window chrome代理 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
複製程式碼
--cookie 請求帶上cookie
curl --cookie "name=xxx" https://juejin.im
curl -D cookieFile https://juejin.im # 儲存 伺服器返回的cookie 到 檔案cookieFile
curl -c cookieFile https://juejin.im # 儲存 伺服器返回的cookie 到 檔案cookieFile
curl -b cookieFile https://juejin.im # `-b cookieFile` 使用之前儲存的cookie檔案 用作請求
複製程式碼
-k 引數跳過 SSL 檢測
curl -k https://juejin.im
複製程式碼
水了那麼多終於水到“豬腳”出場
後臺的童鞋,經常會遇到線上介面請求報錯需要重現修bug的情況。這時候正常打日誌不僅麻煩,還容易打不準。
但如果學了curl命了,我們就可以把出問題的請求,以curl命令形式儲存下來(如下圖)。
需要重現的時候,我們執行性命令就可以重現 bug 啦,peace&love❤️