RxJava+Retrofit+Gson實現網路請求
RxJava+Retrofit+Gson+okHttp完美組合,真的是太強大了,實現網路請求那是so easy。簡潔,高效,擴充套件性強。對這些框架還不熟悉的,感覺去自學擼程式碼。
可以看我前幾篇文章:
1,搭建本地server,響應Android客戶端HTTP請求
2,OKHTTP實戰
3,Retrofit2.0+網路框架HTTP實戰
先貼RxJava+Retrofit程式碼,有空再來分享。
一,apiService介面:
public interface OairApiService {
@GET("getwifi")
Call<OairWifiBean> getWifiInfo();//普通的retrofit
@GET("getwifi")
Observable<OairWifiBean> getOairWifiInfo();//RxJava
}
二,實現非同步get請求,並實現json的封裝
/**
* 獲取裝置的wifi資訊
*/
private void getOairWifiInfo(final String ip_address) {
String baseUrl = ip_address+"cgi-bin/";
LogUtils.debug(TAG,"baseUrl= "+baseUrl);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
OairApiService apiService = retrofit.create(OairApiService.class);
apiService.getOairWifiInfo()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<OairWifiBean>() {
@Override
public void onCompleted() {
ll_init_loading.setVisibility(View.GONE);
LogUtils.debug(TAG,"onCompleted");
}
@Override
public void onError(Throwable e) {
LogUtils.debug(TAG,"error="+ip_address+e.toString());
}
@Override
public void onNext(OairWifiBean oairWifiBean) {
LogUtils.debug(TAG,"result="+oairWifiBean.toString());
//
}
});
}
三,對json封裝,返回javaBean物件
自己根據後臺提供的json資料,封裝javaBean,本例中:
{"result":0,"result_msg":"succ", "data":{"ssid":"DuQian+2016","encryption":"psk2","key":"12345678"}}
public class OairWifiBean implements Serializable {
public int result;
public String result_msg;
public WifiInfo data;
public class WifiInfo{
public String ssid;//wifi名稱
public String encryption;//加密方式
public String key;//wifi密碼
}
@Override
public String toString() {
return "OairWifiBean{" +
"result=" + result +
", result_msg='" + result_msg + '\'' +
", data=" + data +
'}';
}
}
get請求後,經過Gson解析,返回OairWifiBean物件,toString結果:
result=OairWifiBean{result=0, result_msg=’succ’, data=WifiInfo{ssid=’DuQian+2016’, encryption=’psk2’, key=’12345678’}}
“`
四,總結
本文只是以一個簡單的demo為例,介紹了retrofit+Rxjava+Gson+OKHttp的完美結合使用,簡單大氣上檔次。很多實用的功能, 未完待續,杜乾,Dusan,Q 291902259,歡迎交流。
相關文章
- flutter dio網路請求封裝實現Flutter封裝
- 使用Retrofit+RxJava實現網路請求RxJava
- 網路請求-手把手實現axiosiOS
- Flutter 網路請求的三種簡單實現Flutter
- 分分鐘使用Retrofit+Rxjava實現網路請求RxJava
- Android網路請求(終) 網路請求框架RetrofitAndroid框架
- Android網路請求(3) 網路請求框架OkHttpAndroid框架HTTP
- Android網路請求(4) 網路請求框架VolleyAndroid框架
- .net core基於HttpClient實現的網路請求庫HTTPclient
- Android 網路框架之OKhttp實現https請求Android框架HTTP
- 網路請求了
- 網路請求優化之取消請求優化
- NUXT3.0實現網路請求二次封裝UX封裝
- HTTP網路請求原理HTTP
- iOS原生網路請求iOS
- 網路請求圖片
- 網路請求LCNetwork
- 網路資料請求
- Kotlin + 協程 + Retrofit + MVVM優雅的實現網路請求KotlinMVVM
- 簡單介紹shell中的curl網路請求的實現
- 使用GCD實現和封裝分組併發網路請求GC封裝
- Android okHttp網路請求之Get/Post請求AndroidHTTP
- Jest中Mock網路請求Mock
- OC:封裝網路請求封裝
- iOS 使用Moya網路請求iOS
- Android網路請求(2)Android
- RxJava + Retrofit完成網路請求RxJava
- iOS網路請求穿值iOS
- 網路請求框架對比框架
- Android Http請求框架二:xUtils 框架網路請求AndroidHTTP框架
- Volley實現自定義的網路請求Implementing a Custom Request
- okhttp 原始碼解析 - 網路協議的實現 - 請求流程: 請求的傳送與響應的接收HTTP原始碼協議
- Java實現Http請求JavaHTTP
- JS實現序列請求JS
- Nuxt3實戰系列之網路請求篇UX
- 一步步封裝實現自己的網路請求框架封裝框架
- Android使用Kotlin+Retrofit+Rxjava實現簡單的網路請求AndroidKotlinRxJava
- Flutter 網路請求框架封裝Flutter框架封裝