Linux命令列 cURL的十種常見用法

2021-09-11 16:47:24 字數 3909 閱讀 6137

當我們不加任何選項使用 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表示。檔案的許可權常由十...