您的位置:首页 > 理论基础 > 计算机网络

RxJava+Retrofit+Gson实现网络请求

2016-05-05 12:49 609 查看
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,欢迎交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: