Linux curl 指令 與傳送json格式資料

curl 可以開啟進階功能,來加上更多的參數

curl 基本格式為

curl [options...] <url>

中間為參數,最後是網址
ex. curl https://blog.quantoyo.com

參數格式如下
-X/--request        //帶入GET|POST|PUT|DELETE|PATCH,預設為GET
-H/--header         //可多次使用,並帶入不同header
-i/--include        
-d/--data           //通常使用在POST帶資料
-v/--verbose        //看更多debug訊息
-u/--user           
-b/--cookie 
-k                  //忽視https 的憑證錯誤

如果要下載檔案

有兩種方式
1. 不指定檔名,用網站上的名稱
ex. curl -O https://blog.quantoyo.com/wp-content/uploads/2023/11/PANG4696.jpg

2. 指定檔名(小寫o)
ex. curl -o test.jpg https://blog.quantoyo.com/wp-content/uploads/2023/11/PANG4696.jpg

如果要模擬FORM 表單的request

curl -X POST -H "application/x-www-form-urlencoded" -d "data=testdata&user=quanto"  https://test.quantoyo.com/form.php

使用 POST 方式,並帶入兩筆資料,使用&隔開,最後面則是要傳入的url

使用curl POST 傳送 json 資料

curl -X POST -H "Content-Type:application/json" -d '{"request":"thisisrequest","name":"quanto"}' https://test.quantoyo.com/json.php

將會使用 POST 方式,將Content-Type設為application/json,並帶入資料json

另外,可以將要傳輸的內容先放到檔案內,再傳出去

echo '{"request":"thisisrequest","name":"quanto"}' > send.json

curl -k "https://123.123.123.123/json.php" -H "Content-Type: application/json" -d @send.json -X POST


這種方式可以預先編輯好要傳輸的檔案,就不用每次重新打
這邊用到 curl -k 是可以忽略https 的參數,這可以使用在 網址支援443 port 但是因為是ip 或者憑證並不合乎規範。

發佈留言