Retrofit 2使用流程
在使用retrofit的時候出現了各種各樣奇怪的問題,這邊給自己做一個彙總,有助於後面再次踩坑。
從一般上來看,retrofit使用大致主要分爲這麼幾個部分:
步驟1:添加Retrofit庫的依賴
步驟2:創建 接收服務器返回數據 的類
步驟3:創建 用於描述網絡請求 的接口
步驟4:創建 Retrofit 實例
步驟5:創建 網絡請求接口實例 並 配置網絡請求參數
步驟6:發送網絡請求(異步 / 同步)
我們一步步來看。
1.添加retrofit依賴
首先先添加權限
其次在gradle中加入retrofit庫的依賴
/*步驟二:添加retrofit依賴庫*/
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
注意:現在大多數網頁都是https網絡傳輸,也就是說密文傳輸,如果使用密文傳輸,會非常的不方便(Android 9.0之後已經強制使用了),這邊簡單使用請加入配置文件改成明文傳輸,不然後面會沒法使用(這裏坑了我好久啊)
首先在xml文件夾下創建一個xml(文件夾不存在新建一個)
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
然後在這個文件夾下寫入這個允許明文傳輸
最後在配置文件中加入這個確認即可。
2.接收服務器返回的數據類
我們要根據接收的數據來寫返回的數據類,下面的幾步都按照這個接口爲例子。
這個是一個簡單的post發送,有着兩個參數,原地址url爲http://fanyi.youdao.com/
有着這個返回的數據,根據這個返回數據寫出接收類。
如果該數據需要本地存儲記得加上Serializable接口。
3.創建 用於描述網絡請求 的接口
4.創建 Retrofit 實例
這個創建一般來說在使用的時候可以創建,也可以事先創建好,關於這個創建的時候的builder參數這裏就不展開了,詳細可以去其他詳解裏面查看,這裏只是做最簡單的實現。
5.創建實例並配置請求參數
6.進行同步或者異步請求
這邊使用異步(同步用的感覺不太多)
同步調用是使用call.execute();而異步使用的是enqueue。
結束總結
想要學號retrofit還是不容易啊,其實主要是網絡的東西自己還不太理解,包括http請求等等網絡知識,還是需要學習。github上面會上傳這個簡單的例子,大家可以自行下載。https://github.com/ONLY-yours/Retrofit
可能後面還會繼續更新其他內容,看心情更新吧。