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 或者憑證並不合乎規範。