一、导入依赖
implementation'io.reactivex.rxjava2:rxjava:2.1.3'
implementation'com.squareup.retrofit2:retrofit:2.3.0'
implementation'com.squareup.retrofit2:converter-gson:2.3.0'
implementation'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation'io.reactivex.rxjava2:rxandroid:2.0.1'
二、.创建接口Apiservise
//使用注解设置请求方式(填入请求地址) @GET("nc/article/headline/T1348647909107/0-20.html")
//创建Observble方法并指定泛型它的泛型是需要解析数据的实体类
Observable<TouTiao(泛型为你自己的实体类)> getTouTiao();
三、在需要解析的地方获取Retrofit对象
//获取Retrofit对象
Retrofit build = new Retrofit.Builder()//设置Uri(填入请求方式) .baseUrl("http://172.16.54.18:8080/")//添加Rxjava并开启 .addCallAdapterFactory(RxJava2CallAdapterFactory.create())//添加Gson析 .addConverterFactory(GsonConverterFactory.create(new Gson())).build();
//使用Retrofit对象开启定义好的接口Apiservse
Apiservce apiservce = build.create(Apiservce.class);
//通过开启的Apiservse对象获取它的方法
apiservce.getTouTiaoData()
//因为解析需要在子线程中进行所以开启子线程
.subscribeOn(Schedulers.newThread())
//得不到返回数据时将再次访问
.retry()
//通过观察者模式返回主线程
.observeOn(AndroidSchedulers.mainThread())
//通过子线程获取到需要的数据
.subscribe(new Consumer() {
@Override
public void accept(TouTiao touTiao) throws Exception {
//touTiao为获取到的数据
data.getTouTiao(touTiao.getResult().getData());
}
});