目前已經(jīng)有不少Android客戶端在使用Retrofit+RxJava實現(xiàn)網(wǎng)絡(luò)請求了,相比于xUtils,Volley等網(wǎng)絡(luò)訪問框架,其具有網(wǎng)絡(luò)訪問效率高(基于OkHttp)、內(nèi)存占用少、代碼量小以及數(shù)據(jù)傳輸安全性高等特點。

Retrofit源碼更是經(jīng)典的設(shè)計模式教程,筆者已在之前的文章中分享過自己的一些體會,有興趣的話可點擊以下鏈接了解:Retrofit源碼設(shè)計模式解析(上)》、Retrofit源碼設(shè)計模式解析(下)

但在具體業(yè)務(wù)場景下,比如涉及到多種網(wǎng)絡(luò)請求(GET/PUT/POST/DELETE等),多種請求方式(異步/同步)時,按照Retrofit官方文檔實現(xiàn)網(wǎng)絡(luò)請求仍然會顯得比較繁瑣,本文主要介紹筆者基于Retrofit+RxJava封裝的Android分層網(wǎng)絡(luò)請求框架,適用于下圖所示的業(yè)務(wù)場景:Android移動端通過移動網(wǎng)關(guān)調(diào)用接口平臺發(fā)布的業(yè)務(wù)服務(wù)。

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

上述業(yè)務(wù)架構(gòu)可能是目前移動應(yīng)用中使用的比較廣的,其具有以下優(yōu)點:

  • 由于移動網(wǎng)關(guān)系統(tǒng)和統(tǒng)一服務(wù)發(fā)布平臺的存在,移動端不需要直接調(diào)用業(yè)務(wù)系統(tǒng)的服務(wù),避免了移動端同時對接多個業(yè)務(wù)系統(tǒng),降低移動端系統(tǒng)的復(fù)雜性;

  • 移動網(wǎng)關(guān)會對移動端的請求進行鑒權(quán),屏蔽外部惡意訪問,有效提高內(nèi)部業(yè)務(wù)系統(tǒng)的安全性;

  • 統(tǒng)一服務(wù)發(fā)布平臺集成所有的業(yè)務(wù)接口,對外提供格式統(tǒng)一的接口服務(wù),這對于內(nèi)部系統(tǒng)的可維護性和可擴展性是至關(guān)重要的。

  • 業(yè)務(wù)系統(tǒng)只需要按照格式將其服務(wù)在接口平臺上發(fā)布即可,無需關(guān)心具體的調(diào)用者。

因此,本文分享的分層網(wǎng)絡(luò)請求框架的前提是:Android移動端直接對接移動網(wǎng)關(guān)。主要有以下內(nèi)容: