如何使用改装请求两个API

时间:2017-03-27 10:03:23

标签: android retrofit rx-java rx-java2

我想检查Api1的结果,如果结果是200或"成功",请求Api2。

我的错误代码:

RetrofitService.getApis().api1()
         .filter(new Predicate<Result1>() {
        @Override
        public boolean test(Result1 result1) throws Exception {
            return result1.code==200;
        }
    })
     .flatMap(new Function<Result1>, ObservableSource<Result2>>() {
                @Override
                public ObservableSource<Result2> apply(Result1  result1 ) throws Exception {
                    return RetrofitService.getApis().api2(result1.data);
                }
            })
     .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<Result2>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(Result2 value) {

                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            });

但是,当result1.code!= 200时,Observer永远不会被调用。

0 个答案:

没有答案