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,歡迎交流。