curl 工具的使用

curl命令是個功能強大的網絡工具,支持經過http、ftp等方式下載文件、上傳文件。還能夠用來抓取網頁、網絡監控等方面的開發,解決開發過程當中遇到的問題。php

經常使用參數

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請求

一、curl安裝

sudo apt-get install curl

二、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"也能夠

三、下載

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。html

四、上傳

-T/--upload-file:往服務器上傳文件

用法:
上傳多個文件
curl -T "img[1-1000].png" ftp://example.com/upload/

上傳多個文件
curl -T "{file1,file2}" http://www.example.com

五、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 。千萬不能漏掉@符號。

六、設置referer

有時候咱們若是直接請求某個URL不能成功,它須要判斷referer是否正確,那就能夠經過-e或--referer參數模擬linux

curl --referer http://www.example.com http://www.example.com

七、指定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

八、僞造cookie

-b或--cookie: 有兩種用法,一是指定參數和值:curl --cookie "name=xxx" http://www.example.com ;二是從文件讀取:curl -b /cookie.txt http://www.example.com

九、保存cookie

-c/--cookie-jar:curl命令執行後保存操做時生成的cookie到文件:

curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com

十、定義輸出顯示內容

-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"

 

安裝及配置參考資料:shell

http://www.linuxidc.com/Linux/2014-11/109910.htm瀏覽器

相關文章
相關標籤/搜索