當我們不加任何選項使用 curl 時,缺省會傳送 get 請求來獲取鏈結內容到標準輸出。
curl 複製**
如果我們只想要顯示 http 頭,而不顯示檔案內容,可以使用-i
選項:
curl -i 複製**
輸出為:
vary: accept-encoding複製**也可以同時顯示 http 頭和檔案內容,使用-i
選項:
curl -i 複製**
輸出為:
複製**我們可以使用>
符號將輸出重定向到本地檔案中。
curl > index.html複製**
也可以通過 curl 自帶的-o/-o
選項將內容儲存到檔案中。
curl -o /page/2/ -o /page/3/複製**
或者:
curl -o page1.html /page/1/ -o page2.html /page/2/複製**
curl 複製**
301 moved permanentlytitle>
head>
bgcolor="white">
301 moved permanentlyh1>
center>
nginx/1.10.3center>
body>
html>
複製**
而當我們通過瀏覽器開啟該鏈結時,會自動跳轉到
。此時我們想要 curl 做的,就是像瀏覽器一樣跟隨鏈結的跳轉,獲取最終的網頁內容。我們可以在命令中新增-l
選項來跟隨鏈結重定向:
curl -l 複製**
這樣我們就能獲取到經過重定向後的網頁內容了。
我們可以使用 -a 來自定義使用者**,例如下面的命令將偽裝成安卓火狐瀏覽器對網頁進行請求:
curl -a "mozilla/5.0 (android; mobile; rv:35.0) gecko/35.0 firefox/35.0" 複製**
下面我們會使用 -h 來實現同樣的目的。
當我們需要傳遞特定的 header 的時候,可以仿照以下命令來寫:
curl -h "referer: www.example.com" -h "user-agent: custom-user-agent" 複製**
可以看到,當我們使用-h
來自定義 user-agent 時,需要使用 "user-agent: ***" 的格式。
我們能夠直接在 header 中傳遞 cookie,格式與上面的例子一樣:
curl -h "cookie: jsessionid=d0112a5063d938586b659ef8f939be24" 複製**
另一種方式會在下面介紹。
當我們使用 curl 訪問頁面的時候,預設是不會儲存 cookie 的。有些情況下我們希望儲存 cookie 以便下次訪問時使用。例如登陸了某個**,我們希望再次訪問該**時保持登陸的狀態,這時就可以現將登陸時的 cookie 儲存起來,下次訪問時再讀取。
-c 後面跟上要儲存的檔名。
curl -c "cookie-example" 複製**
前面講到了使用 -h 來傳送 cookie 的方法,這種方式是直接將 cookie 字串寫在命令中。如果使用 -b 來自定義 cookie,命令如下:
curl -b "jsessionid=d0112a5063d938586b659ef8f939be24" 複製**
如果要從檔案中讀取 cookie,-h 就無能為力了,此時可以使用 -b 來達到這一目的:
curl -b "cookie-example" 複製**
即 -b 後面既可以是 cookie 字串,也可以是儲存了 cookie 的檔名。
我們以登陸網頁為例來進行說明使用 curl 傳送 post 請求的方法。假設有乙個登入頁面 www.example.com/login,只需要提交使用者名稱和密碼便可登入。我們可以使用 curl 來完成這一 post 請求,-d 用於指定傳送的資料,-x 用於指定傳送資料的方式:
curl -d
"username=tom&passwd=123456" -x post /login複製**
在使用 -d 的情況下,如果省略 -x,則預設為 post 方式:
curl -d
"username=tom&passwd=123456" /login複製**
強制使用 get 方式
傳送資料時,不僅可以使用 post 方式,也可以使用 get 方式,例如:
curl -d
"somedata" -x get /api複製**
或者使用 -g 選項:
curl -d
"somedata" -g /api複製**
從檔案中讀取 data
curl -d
"@data.txt" /login複製**
帶 cookie 登入
當然,如果我們再次訪問該**,仍然會變成未登入的狀態。我們可以用之前提到的方法儲存 cookie,在每次訪問**時都帶上該 cookie 以保持登入狀態。
curl -c "cookie-login"
-d"username=tom&passwd=123456" /login複製**
curl -b "cookie-login" /login複製**
這樣,就能保持訪問的是登入後的頁面了。
原文: www.codebelief.com/article/201…
Linux 命令列 cURL 的十種常見用法
輸出為 輸出為 這樣我們就能獲取到經過重定向後的網頁內容了。下面我們會使用 h 來實現同樣的目的。可以看到,當我們使用 h 來自定義 user agent 時,需要使用 user agent 的格式。另一種方式會在下面介紹。如果要從檔案中讀取 cookie,h 就無能為力了,此時可以使用 b 來達到...
centos6 5命令列 curl 的十種常見用法
當我們不加任何選項使用 curl 時,缺省會傳送 get 請求來獲取鏈結內容到標準輸出。curl 如果我們只想要顯示 http 頭,而不顯示檔案內容,可以使用 i 選項 curl i 輸出為 vary accept encoding也可以同時顯示 http 頭和檔案內容,使用 i 選項 curl i...
Linux 命令列 (十)
linux 命令列 十 我們接觸了linux使用者及使用者組的一些相關操作,接下來我們要嘗試linux目錄及檔案許可權管理的一些命令。首先,我們仍然要明確幾個概念 在linux中檔案的許可權常分為可讀 r 亦可用數字4表示 可寫 w 亦可用數字2表示 可執行 x 亦可用數字1表示。檔案的許可權常由十...