curl 使用指北&實戰

銳玩道發表於2019-09-21

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❤️

curl 使用指北&實戰

如果覺得我的文章對你有用,請點贊鼓勵

相關文章