1. 程式人生 > >Linux命令CURL用法

Linux命令CURL用法

自動 傳輸 讀取 下載文件 app 執行c 特殊字符 在屏幕上 mmm

Curl是一個命令行方式下傳輸數據的開源傳輸工具,支持多種協議包括:FTP,HTTP,HTTPS,IMAP,POP3,TELNET等。同樣支持HTTP POST方法,PUT方法,FTP上傳,cookie,用戶名/密碼認證,下載文件端點續傳等,功能十分強大。

1. 先來試試

curl http://www.baidu.com ,回車之後,HTML內容就顯示在屏幕上了。

2. 下載

curl –o baidu.html http://www.baidu.com ,執行後還可以看到下載進度提示,完成100%後會自動退出了,把網頁保存到baidu.html中了。

它還有一個大寫O的選項,是按照服務器上的文件名保存到本地,如果執行curl –O http://www.baidu.com ,是會報錯的,提示找不到文件名,如果換成curl –O http://baike.baidu.com/view/1326315.htm , 就自動保存文件為1326315.html。

Windows下像flashget這樣的工具還支持分塊以及斷點續傳,curl也毫不示弱。

-C或--continue-at:斷點續傳,用法如下:

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

-r或--range:分塊下載,用法:

curl -r 0-10240 -o "example.part1" http://www.example.com/example.zip &

curl -r 10241-20480 -o "example.part2"

http://www.example.com/example.zip

其中加&表示在後臺執行,需要按CTRL+C才能退出。

不過下載完後需要自己把這些破碎的文件合並起來

如果你用UNIX或蘋果,用 cat example.part* > example.zip就可以

如果用的是Windows,用copy /b example.part1+example.part2 example.zip來解決

3. 上傳

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

curl -T "img[1-1000].png" ftp://example.com/upload/

或上傳多個文件

curl -T "{file1,file2}" http://www.example.com

4. 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參數:就可以自動轉義特殊字符,無需人工事先轉義。

-F或--form:將本地文件上傳到服務器,用法為:curl -F “filename=@/home/test/test.pic” http://example.com/example.php [email protected]

5. 設置referer

有時候我們如果直接請求某個URL不能成功,它需要判斷referer是否正確,那就可以通過-e或--referer參數模擬

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

6. 指定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” http://www.example.com

7. 偽造cookie

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

8. 保存cookie

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

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

9. 定義輸出顯示內容

現在為止對它的崇拜已經是猶如滔滔江水連綿不絕了,慢!還有一個powerful的選項.

-w/--write-out: 可以定義輸出的內容,如常用的http碼,tcp連接時間,域名解析的時間,握手時間及第一時間響應時間等,非常強大。

用法如:

curl -o /dev/null -s -w %{http_code} "http://www.baidu.com" 打印出返回的http碼

curl -o /dev/null -s -w “time_total: %{time_total}\n" "http://www.baidu.com" 打印響應時間

如果你對curl還有更大的興趣,其他更多的功能請找無所不能的男人幫忙吧!

摘自:http://blog.csdn.net/zzzmmmkkk/article/details/38569057

Linux命令CURL用法