New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一日圖書館管理員:HTTP Challenge #24
Comments
lv8 的 token 倒著看就會發現梗了 XD |
話說後面新增了幾關,要不要繼續挑戰XD |
@aszx87410 沒問題😂等我更新! |
LV11 : Origin 請求來源
先開啟API文件的網址
跟菲律賓圖書館打個招呼 然後會得到這樣的錯誤
解法
LV12 : Redirect 轉址
前往取得Token
執行完,網頁網址有變動 >> https://lidemy-http-challenge.herokuapp.com/api/v3/deliver_token_result 再次將剛剛帶有token的網址再貼一次(F12開起來的網頁別關掉)
回到Chrome DevTools的網頁(進入到Network選項裡,會看到如下的樣子) (補充: 找到MDN這篇後,有了一點解題的靈感) LV13 : Proxy 代理伺服器
取得log
看一下hint XD
找尋來自菲律賓的Proxy IP:116.50.163.67 Port:80 設定Proxy,開啟Google 設定的頁面 重新整理Chrome頁面,得到Level14的token了
(補充:Huli大大的彩蛋也有補充其他解法) LV14 : 瀏覽器優化
獲取首頁內容
還是想不出要如何做,看一下hint
於是,google關鍵字搜尋一下 Google 搜尋引擎 with web server
得到Level15的token了! (補充:將上面成功取得資料的那段HTML以瀏覽器開啟後,並不會在頁面上顯示,需要F12開啟查看) LV15 : 破關囉
恭喜囉,再留給想自己最後破關的人去看看最後的地方吧~ 小小結語 破關完想起電影一級玩家,好玩~ (若有步驟、流程錯誤或是其他問題,歡迎告知,我將進行修正) |
由 @huli 大大開發的小遊戲,因為覺得概念實在太有趣了,就來玩玩看並做個簡單的紀錄。
主要會練習到
GET
POST
DELETE
PATCH
這四種常見的方法,還有query string
的運用,以及Authoration
驗證。除了 GET 方法會直接在網頁的 URL 輸入之外,其他的方法我會透過 Postman 來幫忙。
那麼就開始吧!遊戲網址
Lv0:熱身
給第一次進來的朋友的遊戲解說。
Lv1:GET
直接在 query string 上加上
name={你的名字}
Lv2:還是 GET
一樣是 GET,只要在 query string 加上 id,後面的數字就是 54~58 選一個,試到對為止。
如果不對的話,會回應
好像不是這本書耶...
,最後試出來是 56。Lv3:POST
POST 的部分就請 Postman 來幫忙,參考一下 圖書館資訊系統 API 文件。
POST 的 url 是這樣:https://lidemy-http-challenge.herokuapp.com/books
Body 的格式選擇 x-www-form-urlencoded ,再把 token name ISBN 填入,按下 send
把 id 用 queryString 帶入
Lv4:GET 的 query 練習
這是
GET
方法。其中提到書名有「世界」兩字,根據 API 文件,使用參數
q
來查詢。而雖然題目有提到作者是要「村上春樹」,但 API 並沒有提供篩選作者的方法,所以只能靠肉眼找出 id(試過
?q=世界&author=村上春樹
,結果相同)找到 id 為 79
Lv5:delete 練習
這次使用 DELETE 方法,
Lv6:Authorization 驗證
這次多了一個新版的 API文件
如果我直接 GET
https://lidemy-http-challenge.herokuapp.com/v2/me
,會給我一個Invalid Authorization token
的錯誤在 Postman 上,Authorization 選擇 Basic Auth,username 和 password 就填上題目寫的帳號跟密碼
將 email 放在 queryString
Lv7:Authorization 版的 DELETE
一樣是 DELETE 方法,不同的是,這次要加上剛剛的 Authorization
Lv8:PATCH 更新
首先,先找到那本書,使用 GET
根據題目描述,作者的名字是四個字、ISBN 最後一碼為 7 的應該是這本:
接著使用
PATCH
,因為更新也要傳遞資料,所以方法類似於 POST 會需要帶資料,而要帶的資料就是想要更新的資料,例如這個題目就是將 ISBN 參數帶上欲更改的Lv9:特殊的 Header
我們先試試看用一般的方法會怎樣,很單純的使用 GET 與 Authorization:
會得到
Invalid Library Number
這樣的錯誤。根據題目,我們在 header 加上
X-Library-Number
和user-agent
得到 version 了!
Lv10:最終關-猜數字
居然是幾A幾B當結尾!那這就不破梗了,讓觀眾自己猜。
不過還是要放張過關圖🎉
The text was updated successfully, but these errors were encountered: