multiple api request using retrofit and rx java

前端 未结 3 482
情书的邮戳
情书的邮戳 2020-12-09 06:44

I am new to android and I have a scenario where I want to get get data from multiple api. Let suppose api_a, api_b, api_c,

3条回答
  •  难免孤独
    2020-12-09 07:05

    Merge operator combines multiple observable into one

    Set up Base URL of API:

    Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl(Constants.BASE_URL)
                        .addConverterFactory(GsonConverterFactory.create())
                        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                        .client(oktHttpClient.build())
                        .build();
    

    Now setup two observables for the two network requests:

    Observable Observable1 = ApiClient.getApiService().getApi_1();
    
    Observable Observable2 = ApiClient.getApiService().getApi_2();
    

    Now we use RxJava's mergemethod to combine our two Observables:

    Observable.merge(Observable1, Observable2 )
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Observer() {
                        @Override
                        public void onSubscribe(Disposable d) {
    
                        }
    
                        @Override
                        public void onNext(JsonElement value) {
                            Log.d("RESPONSE", "onNext:=======" + value);
                        }
    
                        @Override
                        public void onError(Throwable e) {
    
                        }
    
                        @Override
                        public void onComplete() {
                            Log.d("RESPONSE", "DONE==========");
                        }
                    });
    

提交回复
热议问题