目錄
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中:
然後修改網絡請求接口聲明:
于是網絡請求如下: