天天看點

Retrofit網絡架構:結合RxJava、Gson簡化網絡請求

目錄

​​1、Retrofit進行基礎網絡請求​​

​​2、添加OkHttp配置:統一配置逾時時間、認證等​​

​​3、添加Gson解析​​

​​4、RxJava簡化處理流程​​

​ Retrofit是一個流行的網絡請求架構,可以将聲明的網絡請求接口通過動态代理的方式生成具體的請求,内部實際使用OkHttp進行網絡請求,可以使用Gson處理請求的資料,使用RxJava進行線程的切換。下面從基礎的Retrofit請求開始,依次添加OkHttp配置、Gson、RxJava簡化網絡請求。

接口來源:​​和風天氣api​​, 網絡請求key需要自己申請

​​例子​​

1、Retrofit進行基礎網絡請求

​ 首先建立一個基礎的Retrofit執行個體:

​ 然後聲明網絡請求接口:

​ 進行網絡請求:

2、添加OkHttp配置:統一配置逾時時間、認證等

​ 進行網絡請求時需要統一配置逾時時間等,同時還需要進行認證(如天氣請求時統一的key), 這可以通過添加自定義的OkHttpClient來實作。

​ 于是網絡請求接口可以簡化為:

​ 同樣地,如下進行網絡請求:

3、添加Gson解析

​ 網絡請求回來的資料需要轉成model, Retrofit提供了相關接口,可以通過Gson将請求回來的字元串轉成model。

​ 添加依賴:

​ Retrofit建立時增加解析Factory:

​ 網絡請求接口可以寫成:

​ 于是網絡請求如下:

4、RxJava簡化處理流程

​ 如果需要對傳回的資料進一步處理,那麼使用RxJava是一個比較好的選擇。RxJava能夠友善的進行上下文切換,可以将複雜、耗時的操作放到非主線程中執行,然後在主線程傳回結果。

​ 引入RxJava依賴:

​ 将RxJava配置到Retrofit中:

​ 然後修改網絡請求接口聲明:

​ 于是網絡請求如下: