2019-05-25

CURL 登入參數與標頭設定

最近使用一些雲端 應用程式介面 (Application Programming Interface (API))
通常都有提供不同程式語言及指令的範例來測試基本的執行語法及結果
但亦由於程式語言範例通常都是使用由雲端服務提供的函式庫,而在下不太喜歡使用雲端服務提供的函式庫
因此通常都比較喜歡使用 CURL 這些指令執行的範例,發現 CURL 有一個登入參數,但不知如何在其他程式語言使用

以下是該雲端服務提供 CURL 的執行語法範例
curl --request POST --user "apikey:${apikey}" ......

在下比較喜歡使用 CURL 執行這個指令,不想使用雲端服務提供的函式庫
查看到 CURL 的 --user 參數是一種 Basic Authorization

然後在下使用 -v 這個參數來獲取完整結果
curl -v --request POST --user "apikey:${apikey}" ......
發現 有一個 Authorization: basic ......請求標頭 (Request Header)
但 Authorization 標頭的內容卻加密了

由於在下因為曾經使用 Telnet 登入操作,需要將 帳戶密碼 的內容以 base64 重新編碼
因此估加密的內容就是 base64 後的 apikey:${apikey}
所以在下使用
curl -v --request POST --header "Authorization: basic "`echo -n "apikey:${apikey}" | base64` ......
的確能夠得到預期結果

雖然用 --user 這個參數可以較簡單,但還是使用 Authorization 標頭的語法能與其他程式語言的語法較一致
所以還是繼續使用標頭的語法執行 CURL

沒有留言 :

張貼留言