iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0

為了讓主程式看起來整潔一點,我會將RestTemplate發送API的部分拉出來寫一隻Util。
為了方便管理,Util的部分都會建立一個util的資料夾。
建立名稱為PostApiUtil的class並放在util資料夾:
https://ithelp.ithome.com.tw/upload/images/20230927/20160220Az1fDiRMHl.png
接著新增一個sendPost的方法:
https://ithelp.ithome.com.tw/upload/images/20230927/20160220KL28PpksaJ.png
將Request Header所需要的資訊當作參數:
https://ithelp.ithome.com.tw/upload/images/20230927/20160220an51163tc4.png

channelId:X-LINE-ChannelId
nonce:X-LINE-Authorization-Nonce
signature:X-LINE-Authorization
mapperData:Request Body

將RestTemplate 給 new出來後,我們需要把Request Header也給補上。
HttpHeaders:
https://ithelp.ithome.com.tw/upload/images/20230927/20160220YBaiFTHu3f.png
Headers的部分就非常直覺了,將Postman測試時添加的Request Header以HttpHeaders的方式完成!
接下來利用HttpEntity來將我們的Request Header、Request Body包裝成一個Http請求。
HTTP Entity:
https://ithelp.ithome.com.tw/upload/images/20230927/201602205VK5YzCnuk.png
Headers:上面準備的HttpHeaders物件
mapperData:Request Body的參數
使用RestTemplate發送PostApi:
https://ithelp.ithome.com.tw/upload/images/20230927/20160220PKFX6lWKzZ.png
主程式ConsumerCheck 呼叫 PostApiUtil的sendPost方法:
https://ithelp.ithome.com.tw/upload/images/20230927/20160220wVfukiKifY.png
帶入channelId、nonce、signature、reuqestHttpsUri、json格式的Request Body。
requestHttpsUri:https的完整uri而不是requestUri喔!
注意是channelId不是channelSecret喔!
為了方便查看測試結果我們修改一下PostApiUtil的部分:
https://ithelp.ithome.com.tw/upload/images/20230927/20160220PklerFRnhs.png
將回傳的responsebody轉換成json格式,回傳的void改成回傳JsonNode的json物件。
測試結果Console(Request API):
https://ithelp.ithome.com.tw/upload/images/20230927/201602203tiQ1DLnMN.png
可以看到結果為Response 200 OK,以及json格式的Response Body。
那到這邊使用RestTemplate發送API就完成囉!


上一篇
Day26 – 使用RestTemplate 發送API!(1)
下一篇
Day28 - 使用RestTemplate 發送API!(補充)
系列文
就算是初學者也能實作成功的使用java + spring 實現串接Line Pay APIs!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言