Ubuntu命令--CURL用法

weixin_34162629發表於2016-05-12
curl命令是個功能強大的網路工具,支援通過http、ftp等方式下載檔案、上傳檔案。還可以用來抓取網頁、網路監控等方面的開發,解決開發過程中遇到的問題。

常用引數
curl命令引數很多,這裡只列出我曾經用過、特別是在shell指令碼中用到過的那些。
-v/--verbose 小寫的v引數,用於列印更多資訊,包括髮送的請求資訊,這在除錯指令碼是特別有用。
-m/--max-time <seconds> 指定處理的最大時長
-H/--header <header> 指定請求頭引數
-s/--slient 減少輸出的資訊,比如進度
--connect-timeout <seconds> 指定嘗試連線的最大時長
-x/--proxy <proxyhost[:port]> 指定代理伺服器地址和埠,埠預設為1080
-T/--upload-file <file> 指定上傳檔案路徑
-o/--output <file> 指定輸出檔名稱
-d/--data/--data-ascii <data> 指定POST的內容
--retry <num> 指定重試次數
-e/--referer <URL> 指定引用地址
-I/--head 僅返回頭部資訊,使用HEAD請求



1、curl安裝 eg、sudo apt-get install curl 2、GET請求 curl http://www.baidu.com,回車之後,HTML內容列印在螢幕上;如果這裡的URL指向的是一個檔案或者一幅圖都可以直接下載到本地。 curl -i "http://www.baidu.com" 顯示全部資訊 curl -l "http://www.baidu.com" 只顯示頭部資訊 curl -v "http://www.baidu.com" 顯示get請求全過程解析 wget "http://www.baidu.com"也可以 3、下載 curl –o linjiqin http://www.cnblogs.com/linjiqin,執行後可以看到下載進度提示,完成100%後會自動退出了,把網頁儲存到linjiqin中。 它還有一個大寫O的選項,是按照伺服器上的檔名儲存到本地,如果執行curl –O http://www.cnblogs.com,是會報錯的,提示找不到檔名,如果換成curl –O http://www.cnblogs.com/linjiqin/p/5401969.html,就自動儲存檔案為5401969.html。 4、上傳 -T/--upload-file:往伺服器上傳檔案 用法: 上傳多個檔案 curl -T "img[1-1000].png" ftp://example.com/upload/ 上傳多個檔案 curl -T "{file1,file2}" http://www.example.com 5、POST方法 -d或--data引數:post請求,用法為curl -d "id=1&name=test" http://example.com/example.php,需把請求的引數和URL分開,同時可以使用curl -d "id=1" -d "name=test" http://example.com/example.php,相當於提交了兩個引數。當提交的引數值中有特殊字元就需要先轉義。如空格時,就需要轉義成%20。 --data-urlencode引數:可以自動轉義成特殊字元,無需人工事先轉義。 curl --data-urlencode "name=April 1" http://example.com/example.php -F或--form:將本地檔案上傳到伺服器,用法為:curl -F "filename=@/home/test/test.pic" http://example.com/example.php 。千萬不能漏掉@符號。 6、設定referer 有時候我們如果直接請求某個URL不能成功,它需要判斷referer是否正確,那就可以通過-e或--referer引數模擬 curl --referer http://www.example.com http://www.example.com 7、指定User Agent -A/--user-agent:偽裝成指定的瀏覽器Chrome訪問,用法: curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" www.baidu.com 8、偽造cookie -b或--cookie: 有兩種用法,一是指定引數和值:curl --cookie "name=xxx" http://www.example.com ;二是從檔案讀取:curl -b /cookie.txt http://www.example.com 9、儲存cookie -c/--cookie-jar:curl命令執行後儲存操作時生成的cookie到檔案: curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com 10、定義輸出顯示內容 -w/--write-out: 可以定義輸出的內容,如常用的http碼,tcp連線時間,域名解析的時間,握手時間及第一時間響應時間等,非常強大。 1、列印出返回的http碼 curl -o /dev/null -s -w %{http_code} "http://www.baidu.com" 2、列印響應時間 curl -o /dev/null -s -w "time_total: %{time_total}\n" "http://www.baidu.com"

 

相關文章