Retrofit2使用流程總結(最簡單實現,自我總結)附源碼

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(文件夾不存在新建一個)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-39abR8Vr-1584367407700)(C:\Users\i m yours\AppData\Roaming\Typora\typora-user-images\image-20200316214359157.png)]

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

然後在這個文件夾下寫入這個允許明文傳輸

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bukYpSLI-1584367407701)(C:\Users\i m yours\AppData\Roaming\Typora\typora-user-images\image-20200316214448093.png)]

最後在配置文件中加入這個確認即可。

2.接收服務器返回的數據類

我們要根據接收的數據來寫返回的數據類,下面的幾步都按照這個接口爲例子。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LvWY4YRS-1584367407702)(C:\Users\i m yours\AppData\Roaming\Typora\typora-user-images\image-20200316214905323.png)]

這個是一個簡單的post發送,有着兩個參數,原地址url爲http://fanyi.youdao.com/

有着這個返回的數據,根據這個返回數據寫出接收類。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KTC7MdkB-1584367407706)(C:\Users\i m yours\AppData\Roaming\Typora\typora-user-images\image-20200316215036578.png)]

在這裏插入圖片描述

如果該數據需要本地存儲記得加上Serializable接口。

3.創建 用於描述網絡請求 的接口

在這裏插入圖片描述

4.創建 Retrofit 實例

在這裏插入圖片描述
這個創建一般來說在使用的時候可以創建,也可以事先創建好,關於這個創建的時候的builder參數這裏就不展開了,詳細可以去其他詳解裏面查看,這裏只是做最簡單的實現。

5.創建實例並配置請求參數

在這裏插入圖片描述

6.進行同步或者異步請求

這邊使用異步(同步用的感覺不太多)
在這裏插入圖片描述
同步調用是使用call.execute();而異步使用的是enqueue。

結束總結

想要學號retrofit還是不容易啊,其實主要是網絡的東西自己還不太理解,包括http請求等等網絡知識,還是需要學習。github上面會上傳這個簡單的例子,大家可以自行下載。https://github.com/ONLY-yours/Retrofit

可能後面還會繼續更新其他內容,看心情更新吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章