Retrofit+Rxjava的简单使用

一、导入依赖

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 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());

                    }

                });

你可能感兴趣的:(Retrofit+Rxjava的简单使用)