Retrofit+RxJava的联合使用

接口

public interface Api {

    /**
     * http://www.waqu.com
     * /v4/user/subscribedItems2.json?
     * platform=and&appName=general_video&
     * sid=861945036834301&profile=general_child
     * &partner=21160138&appVersion=3.9.2&brand=Xiaomi&model=MI+5&osVersion=24&size=10
     */

    @GET("/v4/user/subscribedItems2.json?\n" +
                    "platform=and&appName=general_video&\n" +
                    "sid=861945036834301&profile=general_child\n" +
                    "&partner=21160138&appVersion=3.9.2&brand=Xiaomi&model=MI+5&osVersion=24")
    Observable<Fragmentone_Data> getString(@Query("size") int size);


    @GET("/v4/user/qudanSubscribed.json?\n" +
            "platform=and&appName=general_video&sid=861945036834301\n" +
            "&profile=general_child&partner=21160138&appVersion=3.9.2\n" +
            "&brand=Xiaomi&model=MI+5&osVersion=24&start=0&recommType=recomm")
    Observable<FragmentTwo_Data> geStringTwo(@Query("size") int size);


    @GET("/v4/user/trends.json?platform=\n" +
            "and&appName=general_video&sid=861945036834301\n" +
            "&profile=general_child&partner=21160138&appVersion=3.9.2\n" +
            "&brand=Xiaomi&model=MI+5&osVersion=24&start=0")
    Observable<FragmentThree_Data>  getStringThree(@Query("size") int size);


}

Retrofit和RxJava一起使用:

  private void initdata() {
        Retrofit retrofit=new Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .baseUrl(HttpParams.HTTP_HOST)
                .build();
        Api api=retrofit.create(Api.class);

        Observable<Fragmentone_Data>  observable=api.getString(size);
        observable.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(this, new Consumer<Throwable>() {
                    @Override
                    public void accept(@NonNull Throwable throwable) throws Exception {
                        Log.e("flag", "--------------------->accept: 数据请求失败");
                    }
                });
    }


    @Override
    public void accept(@NonNull Fragmentone_Data fragmentone_data) throws Exception {
        line_bottom.setVisibility(View.GONE);
            if(fragmentone_data!=null){
                for (int i = 0; i <fragmentone_data.getData().size() ; i++) {

                   data.add(fragmentone_data.getData().get(i));
                }
                adapter.notifyDataSetChanged();
            }

    }

或者这样 .subscribe(this, new Consumer() {}方法中不用this这个参数.然后就不重写失败的方法:

private void initData(final State state) {
        Api.getApiService().getItem()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Consumer<Tuijian>() {
                    @Override
                    public void accept(@NonNull final Tuijian tuijian) throws Exception {
                        //TODO这里面是得到的数据的处理......


                    }
                });
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值