Retrofit2.0+Rxjava初探

Retrofit2.0+Rxjava初探

1.WebService

    public interface WebService {

        @Headers({
                "X-Bmob-Application-Id: 9e16e39fa5374f446e5c928da0f83d62",
                "X-Bmob-REST-API-Key: 42db163cd4c45884279b914e1c2a4e75",
                "Content-Type: application/json"
        })
        @GET("1/classes/{tableName}")
        Observable<BaseGsonBean> getHXGsonData(@Path("tableName")String tableName,
                                               @Query("limit")String limit, @Query("skip") String skip,
                                               @Query("order")String order);
    
        //获取暴走日报首页内容
        @GET("http://dailyapi.ibaozou.com/api/v31/documents/latest")
        Observable<BaozouGsonBean> getBaozouGsonBean();
    
        //获取暴走日报首页内容
        @GET("http://dailyapi.ibaozou.com/api/v31/documents/latest")
        Observable<BaozouGsonBean> getNextBaozouGsonBean(@Query("timestamp")int timestamp);
    
    }

2.初始化配置

    //新的配置
        retrofit = new Retrofit.Builder()
                .client(new OkHttpClient())
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//新的配置
                .baseUrl(BASE_URL)
                .build();

        service = retrofit.create(WebService.class);

3.结合Rxjava

    service.getBaozouGsonBean()
                    .subscribeOn(Schedulers.io())
                    .map(new Func1<BaozouGsonBean, List<BaseBean>>() {
                        @Override
                        public List<BaseBean> call(BaozouGsonBean baozouGsonBean) {
                            //获取时间戳
                            timeStamp=baozouGsonBean.getTimestamp();
    
                            List<BaozouGsonBean.DataBean> results = baozouGsonBean.getData();
                            List<BaseBean> responses=new ArrayList<BaseBean>();
    //                        LogUtils.Log(""+results.size());
    
                            for (BaozouGsonBean.DataBean resultsBean:results){
    
    //                            LogUtils.Log(resultsBean.getTitle());
    
                                BaseBean baseBean =new BaseBean();
                                baseBean.setTitle(resultsBean.getTitle());
                                baseBean.setImgSrc(resultsBean.getThumbnail());
                                baseBean.setContentURL(resultsBean.getUrl());
                                responses.add(baseBean);
                            }
                            return responses;
                        }
                    })
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Subscriber<List<BaseBean>>() {
                        @Override
                        public void onCompleted() {
    //                        LogUtils.Log("completed");
                            mRefreshLayout.endRefreshing();
                            mRefreshLayout.endLoadingMore();
    //                        if (rvData.isRefresh()) {
    //                            rvData.setPullLoadMoreCompleted();
    //                        }
                        }
    
                        @Override
                        public void onError(Throwable e) {
    
                        }
    
                        @Override
                        public void onNext(List<BaseBean> huXiuList) {
                            LogUtils.Log("这里这里这里是一开始~~~"+huXiuList.size()+"");
                            adapter.append(huXiuList);
                        }
                });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,657评论 19 139
  • 定义 将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适...
    晨鸣code阅读 3,971评论 0 0
  • 真正的爱情没有回忆 明天比今天更幸福 因为 明天我比今天更爱你 真正的爱情存在着 你相信她跟随了你 她就真的跟随了...
    代号1743阅读 3,093评论 0 0
  • 在大学已经呆了一年半了,回想过去,似乎并没有留下太多值得留恋的事情。翻开过去的生活笔记也是零碎的片段,我想用生活总...
    嫼液芐晵眀阅读 937评论 0 0