Объединение запросов в Retrofit и RxJava - PullRequest
0 голосов
/ 05 мая 2020

У меня есть ArrayList строк. Для каждой строки я хочу вызвать API с Retrofit2. И ответ каждого API дает некоторые данные, которые я хочу использовать, и оттуда я хочу вызвать другой API. Наконец, он вернет строку независимо от того, успешен он или нет. Я могу добиться этого, но хочу, чтобы все API вызывались один за другим, как синхронный.

Вот мой код выглядит.

for (int i = 0; i < domainList.size(); i++) {
        feedData3(domainList.get(i));
    }

private void feedData3(String domain) {
        Domain domain1 = new Domain();
        streamFetch(domain)
                .concatMap((Function<Contact, ObservableSource<?>>) contact -> {

                    domain1.setDomainData(contact.getDATA());
                    domain1.setDomain(domain);

                    return streamFetchData(domain1.getDomain(), domain1.getDomainData());
                })
                .subscribe(new Observer<Object>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        disposable = d;
                    }

                    @Override
                    public void onNext(Object o) {
                        Log.e(TAG, domain + ",Success");

                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e(TAG, domain + ",failure = " + e.getLocalizedMessage());

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }


public Observable<Contact> streamFetch(String domain) {
        //GET API CALL
    }

public Observable<String> streamFetchData(String domainName, String domainData) {
        //POST API CALL
    }
...