Linux中強大的Curl

最近特別對Shell這塊感興趣,總想用腳本去寫點什么。上次為項目寫了一個打包腳本,費了九牛二虎之力,但是感覺還不錯,很有成就感,而且還被領導表揚了。上周四填寫工時的時候,發現每次手動去寫一些重復的事情的時候很麻煩,于是就想通過腳本批量化處理,就想到了Bash中的一個強大命令Curl。下面為大家介紹一些Curl的強大之處,同時也當做一個記錄學習的過程,當不久之后,自己可能會遺忘自己學習過的東西,但是可以通過自己寫的文字快速回憶起那時學過的東西,感覺很有用。

英文版資料:https://curl.haxx.se/docs/httpscripting.html

1.訪問一個網址。

curl http://www.baidu.com

這個是最簡單的,他會把你訪問的地址已文字的方式返回。比如下邊直接返回的json的字符串

項目的一個假接口.png

2.保存頁面&&下載文件

curl option : -o

curl -o baidu.html http://www.baidu.com

下載一張圖片

curl -o girl.jpg http://hostname.com/girl.jpg

如果想下載圖片的名字和服務器保持一致 -O 大寫的O

curl -O http://hostname.com/girl.jpg

可以看到屏幕上出現一個下載頁面進度指示,等到100%,就保存完成了.

3.GET訪問一個接口。其實和第一個類似,應為第一個就是一個get方式,只不過沒有參數罷了。如果帶有參數的接口應該這樣寫:

curl http://www.xxxx.com/getDataList?param1=value1&param2=value2

4.POST

使用 option -d/--data,

curl -d "param2=nickwolfe&param2=12345" http://www.xxx.com/xxx

也可以指定一個文件,將該文件中的內容當作數據傳遞給服務器端

curl --data @filename https://hostname.com/xxx

注:默認情況下,通過POST方式傳遞過去的數據中若有特殊字符,首先需要將特殊字符轉義在傳遞給服務器端,如value值中包含有空格,則需要先將空格轉換成%20,如:

curl -d "value%201" http://hostname.com

在新版本的CURL中,提供了新的選項 --data-urlencode,通過該選項提供的參數會自動轉義特殊字符。

curl --data-urlencode "value 1" http://hostname.com

除了使用GET和POST協議外,還可以通過 -X 選項指定其它協議,如:

curl -I -X DELETE https://api.github.cim

5.使用curl的時候,用option可以指定http訪問所使用的proxy服務器及其端口: -x

curl -x 193.168.1.1:8080 http://www.baidu.com

6.保存與使用網站cookie信息

將網站的cookies信息保存到sugarcookies文件中

curl -D cookies.txt http://localhost/sugarcrm/index.php

使用上次保存的cookie信息

curl -b cookies.txt http://localhost/sugarcrm/index.php

7.CURL授權

在訪問需要授權的頁面時,可通過-u選項提供用戶名和密碼進行授權

curl -u username:password URL

通常的做法是在命令行只輸入用戶名,之后會提示輸入密碼,這樣可以保證在查看歷史記錄時不會將密碼泄露

curl -u username URL

8.顯示通信過程
-v參數可以顯示一次http通信的整個過程,包括端口連接和http請求頭信息。

curl -v www.sina.com

參考阮一峰網絡http://www.ruanyifeng.com/blog/2011/09/curl.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載自:http://www.cnblogs.com/txw1958/archive/2013/01/19/286...
    php_bruce閱讀 2,294評論 1 5
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • 一、什么是CURL? cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、...
    伊Summer閱讀 1,306評論 0 4
  • CURLOPT_RETURNTRANSFER 選項:curl_setopt($ch, CURLOPT_RETURN...
    Talentisan閱讀 16,904評論 0 2
  • yy房間在線關眾已經有326人,思涵老師每周一次解惑答疑例會與上周一樣,準時開始。 首先講講你這周的情況,書已讀...
    財富健康1閱讀 172評論 1 1