標籤: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 使用詳解 常見應用