linux curl 使用詳解 常見應用

來源:互聯網
上載者:User

標籤:linux   curl   

curl


1 http 逾時

-m 指定逾時的時間 等於--connect-timeout


2 輸出到空

-o /dev/null 不輸出,正常是輸出html格式


3 -w 指定格式輸出


4 -s 去掉所有狀態資訊的輸出


5 -F 上傳表單


6 -e/--referer <URL>  指定referer


7 -H/--header <header> 指定Header頭部


8 -v 查看詳細的請求建立資訊,可以看到request的Header頭部


9 -L 當重新導向的時候,發起新的請求


10 --user 認證的使用者名稱


11 -XGET  請求方式,預設是GET


12 --data-binary  以二進位的方式上傳,沒有任何處理

 

13 --data-urlencode 大致等同於-d 或者--data


14 -o Write output to <file> instead of stdout


15 -x 代理訪問


三者區別:

-d/--data is the same as --data-ascii. To post data purely binary, you should instead use the --data-binary option. To URL-encode  the

value of a form field you may use --data-urlencode.





應用一: 逾時設定


curl -m 3 -o /dev/null -s -w %{http_code}"\n"  www.letuknowit.com


只輸出狀態代碼,並換行"\n"



注意如果逾時 http_code 是 000



應用二: 探測web各個鏈路建立響應的時間點


curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}:%{time_namelookup}"\n" http://www.canada.com


0.081:0.272:0.779:0.356


清單 1 給出對一個流行的新聞網站執行 curl 命令的情況.輸出通常是 HTML 程式碼,通過 -o 參數發送到 /dev/null.-s 參數去掉所有狀態資訊.-w 參數讓 curl 寫出表 1 列出的計時器的狀態資訊:


表 1. curl 使用的計時器


計時器描述

time_connect建立到伺服器的 TCP 串連所用的時間

time_starttransfer在發出請求之後,Web 服務器返回資料的第一個位元組所用的時間

time_total完成請求所用的時間

time_namelookupDNS解析時間,從請求開始到DNS解析完畢所用時間(記得關掉 Linux 的 nscd 的服務測試)

speed_download下載速度,單位-位元組每秒。

這些計時器都相對於事務的起始時間,甚至要先於 Domain Name Service(DNS)查詢.因此,在發出請求之後,Web 服務器處理請求並開始發回資料所用的時間是 0.272 – 0.081 = 0.191 秒.客戶機從伺服器下載資料所用的時間是 0.779 – 0.272 = 0.507 秒.





應用三: 上傳表單資料 上傳圖片

curl -e "http://www.kkfang.com/cuizhiliang" -F "[email protected]/testtest_1111.jpg" "http://upload.kkfang.com/upload/housea.html"



樣本:

-F/--form <name=content

curl -F "[email protected];filename=nameinpost" url.com



@後面接的是一個檔案路徑



應用四: 類比修改Header頭部


-H "Cache-Control:no-cache"

curl  -x127.0.0.1:6081 "http://www.kkfang.com/bj" -H "User-agent:"Googlebot""


多個Header頭一起使用


curl -v -I -H "Host:www.kkfang.com" -H "User-Agent:Ba" http://www.kkfang.com


curl -v -I -H "Host:www.kkfang.com" -H "User-Agent:Ba"  -H "Cache-Control:no-cache" http://www.kkfang.com





應用五: 重新導向的主站

curl -IL  http://www.dianping.com


會302 跳轉到城市列表頁 Location:/citylist


301重新導向與302重新導向的區別

  302重新導向是暫時的重新導向,搜尋引擎會抓取新的內容而保留舊的網址。因為伺服器返回302代碼,搜尋引擎認為新的網址只是暫時的。 SEO 302好於301

  301重新導向是永久的重新導向,搜尋引擎在抓取新內容的同時也將舊的網址替換為重新導向之後的網址。




應用六: --user  調用jenkins的api 擷取設定檔

curl -XGET http://jenkins.anhouse.com.cn/job/ST-ananzu-service/config.xml --user cuizhiliang344:Czl110123






應用七: post資料,加上shell的變數傳遞,執行jenkins JOB並修改資料

/usr/bin/curl -m 5 -s -w %{http_code} -X POST JENKINS_URL/job/JOB_NAME/build --data-urlencode json=‘{"parameter": [{"name":"id", "value":"123"}, {"name":"‘${_TASK_NAME}‘", "value":"high"}]}‘




應用八: 輸出內容

curl -s -XGET http://jenkins.anhouse.com.cn/job/ST-ananzu-service/config.xml --user cuizhiliang344:Czl110123   -o config.txt


或者使用> 進行重新導向

curl -s -XGET http://jenkins.anhouse.com.cn/job/ST-ananzu-service/config.xml --user cuizhiliang344:Czl110123  > config.txt



本文出自 “殘劍” 部落格,請務必保留此出處http://cuidehua.blog.51cto.com/5449828/1962915

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.