21 個 curl 命令練習
最近,我對人們如何學習新事物感興趣。我正在讀 Kathy Sierra 的好書《Badass: Making Users Awesome》,它探討了有關“刻意練習”的想法。這個想法是,你找到一個可以用三節 45 分鐘課程內能夠學會的小技能,並專注於學習這項小技能。因此,作為一項練習,我嘗試考慮一項能夠在三節 45 分鐘課程內學會的計算機技能。
我認為使用 curl
構造 HTTP 請求也許就是這樣的一項技能,所以這裡有一些 curl
練習作為實驗!
什麼是 curl ?
curl
是用於構造 HTTP 請求的命令列工具。我喜歡使用 curl
,因為它能夠很輕鬆地測試伺服器或 API 的行為是否符合預期,但是剛開始接觸它的時候會讓你感到一些困惑!
下面是一幅解釋 curl
常用命令列引數的漫畫 (在我的 Bite Size Networking 雜誌的第 6 頁)。
熟能生巧
對於任何命令列工具,我認為熟練使用是很有幫助的,能夠做到只輸入必要的命令真是太好了。例如,最近我在測試 Gumroad API,我只需要輸入:
curl https://api.gumroad.com/v2/sales \
-d "access_token=<SECRET>" \
-X GET -d "before=2016-09-03"
就能從命令列中得到想要的結果。
21 個 curl 練習
這些練習是用來理解如何使用 curl
構造不同種類的 HTTP 請求的,它們是故意有點重複的,基本上包含了我需要 curl
做的任何事情。
為了簡單起見,我們將對 https://httpbin.org 發起一系列 HTTP 請求,httpbin 接受 HTTP 請求,然後在響應中回顯你所發起的 HTTP 請求。
- 請求 https://httpbin.org
- 請求 https://httpbin.org/anything,它將會解析你發起的請求,並且在響應中回顯。
curl
預設發起的是 GET 請求 - 向 https://httpbin.org/anything 發起 GET 請求
- 向 https://httpbin.org/anything 發起 GET 請求,但是這次需要新增一些查詢引數(設定
value=panda
) - 請求 Google 的
robots.txt
檔案 (www.google.com/robots.txt) - 向 https://httpbin.org/anything 發起 GET 請求,並且設定請求頭為
User-Agent: elephant
- 向 https://httpbin.org/anything 發起 DELETE 請求
- 請求 https://httpbin.org/anything 並獲取響應頭資訊
- 向 https://httpbin.com/anything 發起請求體為 JSON
{"value": "panda"}
的 POST 請求 - 發起與上一次相同的 POST 請求,但是這次要把請求頭中的
Content-Type
欄位設定成application/json
(因為 POST 請求需要一個與請求體相匹配的Content-Type
請求頭欄位)。檢視響應體中的json
欄位,對比上一次得到的響應體 - 向 https://httpbin.org/anything 發起 GET 請求,並且在請求頭中設定
Accept-Encoding: gzip
(將會發生什麼?為什麼會這樣?) - 將一些 JSON 放在檔案中,然後向 https://httpbin.org/anything 發起請求體為該檔案的 POST 請求
- 設定請求頭為
Accept: image/png
並且向 https://httpbin.org/image 發起請求,將輸出儲存為 PNG 檔案,然後使用圖片瀏覽器開啟。嘗試使用不同的Accept:
欄位去請求此 URL - 向 https://httpbin.org/anything 發起 PUT 請求
- 請求 https://httpbin.org/image/jpeg 並儲存為檔案,然後使用你的圖片編輯器開啟這個檔案
- 請求 https://www.twitter.com,你將會得到空的響應。讓
curl
顯示出響應頭資訊,並嘗試找出響應內容為空的原因 - 向 https://httpbin.org/anything 發起任意的請求,同時設定一些無意義的請求頭(例如:
panda: elephant
) - 請求 https://httpbin.org/status/404 和 https://httpbin.org/status/200,然後再次請求它們並且讓 curl 顯示響應頭資訊
- 請求 https://httpbin.org/anything 並且設定使用者名稱和密碼(使用
-u username:password
) - 設定
Accept-Language: es-ES
的請求頭用以下載 Twitter 的西班牙語主頁 (https://twitter.com) - 使用
curl
向 Stripe API 發起請求(請檢視 https://stripe.com/docs/development 瞭解如何使用,他們會給你一個測試用的 API key)。嘗試向 https://httpbin.org/anything 發起相同的請求
via: https://jvns.ca/blog/2019/08/27/curl-exercises/
作者:Julia Evans 選題:lujun9972 譯者:hanwckf 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- Find命令練習
- 牛客SQL練習第21題SQL
- curl命令PostJsonJSON
- Ubuntu命令--CURL用法Ubuntu
- curl命令詳解
- Redis 命令練習彙總Redis
- 最全的cURL命令使用
- 學會使用 curl 命令
- curl wget命令常用wget
- 常用命令--curl
- Curl 命令引數解析
- 每天一個 Linux 命令(21):find命令之xargsLinux
- 【21】Python100例基礎練習(5)Python
- [記錄]curl命令筆記筆記
- linux常用命令練習Linux
- 通過命令curl 操作ElasticSearch指南Elasticsearch
- DB2 入門命令練習(二)DB2
- DB2 入門命令練習(一)DB2
- 如何使用curl命令下載檔案
- curl命令檢視響應時間
- Linux常用精簡命令實訓練習Linux
- 猿人學內部練習平臺第21、22、24、29、34題
- 學習 golang 中,寫了個 golang http client 練練手GolangHTTPclient
- 學習一個 Linux 命令:shutdown 命令Linux
- oracle-hr表查詢命令練習(超完整的select命令大全)Oracle
- Linux curl 命令模擬 POST/GET 請求Linux
- 雲端計算教程學習入門影片原始碼課件:CURL命令使用指南原始碼
- 一個pyspark 開發練習例項Spark
- MySQL寫sql的21個好習慣,學習工作效率翻倍MySql
- 新手練習:Python練習題目Python
- MYSQL練習1: DQL查詢練習MySql
- Linux命令列:cURL的十種常見用法Linux命令列
- Ubuntu linux命令練習1 shell seq rand 格式化UbuntuLinux
- JAVA小練習:求兩個日期的差值Java
- 程式設計練習-自己寫一個strcpy程式設計
- PacVim:一個學習 vim 命令的命令列遊戲命令列遊戲
- 推薦閱讀《21個專案玩轉深度學習》深度學習
- 240個Python練習案例附原始碼(百看不如一練)Python原始碼