Linux命令CURL用法

來源:互聯網
上載者:User

標籤:post請求   興趣   選項   linu   data   產生   工具   使用者名稱   filename   

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 “[email protected]/home/test/test.pic” http://example.com/example.php 。千萬不能漏掉@符號。

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用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.