當前位置:
首頁 > 知識 > 21 個 curl 命令練習

21 個 curl 命令練習

21 個 curl 命令練習


我認為使用 curl 構造 HTTP 請求也許就是這樣的一項技能,所以這裡有一些 curl 練習作為實驗!-- Julia Evans(作者)

最近,我對人們如何學習新事物感興趣。我正在讀 Kathy Sierra 的好書《 Badass: Making Users Awesome 》,它探討了有關「刻意練習」的想法。這個想法是,你找到一個可以用三節 45 分鐘課程內能夠學會的小技能,並專註於學習這項小技能。因此,作為一項練習,我嘗試考慮一項能夠在三節 45 分鐘課程內學會的計算機技能。

我認為使用 curl 構造 HTTP 請求也許就是這樣的一項技能,所以這裡有一些 curl 練習作為實驗!


什麼是 curl ?

curl 是用於構造 HTTP 請求的命令行工具。我喜歡使用 curl,因為它能夠很輕鬆地測試伺服器或 API 的行為是否符合預期,但是剛開始接觸它的時候會讓你感到一些困惑!

下面是一幅解釋 curl 常用命令行參數的漫畫 (在我的 Bite Size Networking 雜誌的第 6 頁)。

21 個 curl 命令練習

熟能生巧

對於任何命令行工具,我認為熟練使用是很有幫助的,能夠做到只輸入必要的命令真是太好了。例如,最近我在測試 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 請求。

  1. 請求 https://httpbin.org
  2. 請求 https://httpbin.org/anything ,它將會解析你發起的請求,並且在響應中回顯。curl 默認發起的是 GET 請求
  3. 向 https://httpbin.org/anything 發起 GET 請求
  4. 向 https://httpbin.org/anything 發起 GET 請求,但是這次需要添加一些查詢參數(設置 value=panda)
  5. 請求 Google 的 robots.txt 文件 ( www.google.com/robots.txt )
  6. 向 https://httpbin.org/anything 發起 GET 請求,並且設置請求頭為 User-Agent: elephant
  7. 向 https://httpbin.org/anything 發起 DELETE 請求
  8. 請求 https://httpbin.org/anything 並獲取響應頭信息
  9. 向 https://httpbin.com/anything 發起請求體為 JSON {"value": "panda"} 的 POST 請求
  10. 發起與上一次相同的 POST 請求,但是這次要把請求頭中的 Content-Type 欄位設置成 application/json(因為 POST 請求需要一個與請求體相匹配的 Content-Type 請求頭欄位)。查看響應體中的 json 欄位,對比上一次得到的響應體
  11. 向 https://httpbin.org/anything 發起 GET 請求,並且在請求頭中設置 Accept-Encoding: gzip(將會發生什麼?為什麼會這樣?)
  12. 將一些 JSON 放在文件中,然後向 https://httpbin.org/anything 發起請求體為該文件的 POST 請求
  13. 設置請求頭為 Accept: image/png 並且向 https://httpbin.org/image 發起請求,將輸出保存為 PNG 文件,然後使用圖片瀏覽器打開。嘗試使用不同的 Accept: 欄位去請求此 URL
  14. 向 https://httpbin.org/anything 發起 PUT 請求
  15. 請求 https://httpbin.org/image/jpeg 並保存為文件,然後使用你的圖片編輯器打開這個文件
  16. 請求 https://www.twitter.com ,你將會得到空的響應。讓 curl 顯示出響應頭信息,並嘗試找出響應內容為空的原因
  17. 向 https://httpbin.org/anything 發起任意的請求,同時設置一些無意義的請求頭(例如:panda: elephant)
  18. 請求 https://httpbin.org/status/404 和 https://httpbin.org/status/200 ,然後再次請求它們並且讓 curl 顯示響應頭信息
  19. 請求 https://httpbin.org/anything 並且設置用戶名和密碼(使用 -u username:password)
  20. 設置 Accept-Language: es-ES 的請求頭用以下載 Twitter 的西班牙語主頁 ( https://twitter.com )
  21. 使用 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

本文由 LCTT 原創編譯, Linux中國 榮譽推出

點擊「了解更多」可訪問文內鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

Kail Linux 新增「卧底模式」,秒變 Win 10 界面來迷惑其他人