Я пытаюсь отправить сетевой запрос на api с использованием модификации, и когда я получу ответ, используйте часть этого ответа в другом вызове, я использовал call и rxjava как предложил, но я всегда второй запрос выполняется перед первым одинМодификация 2 последовательных Запросы, использующие асинхронные сетевые вызовы с повторением
public interface ChannelRequest {
@POST("authenticate_with_options")
@FormUrlEncoded
Observable<Channel> getAuthenticationChannel(@FieldMap Map<String, String> params);
@POST("check")
@FormUrlEncoded
Observable<Channel> getAuthenticationStatus(@FieldMap Map<String, String> params);
}
сс
Observable<Channel> call2 = mAPI.gettheChannel().getAuthenticationStatus(Constants.HTTP.PARAMSAUTH);
Observable.interval(3, TimeUnit.SECONDS).retry(3);
Subscription subscription2 = call2
.subscribeOn(Schedulers.io()) // optional if you do not wish to override the default behavior
.observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Channel>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
if (e instanceof HttpException) {
HttpException response = (HttpException) e;
int code = response.code();
}
}
@Override
public void onNext(Channel channel) {
Log.d("AuthStatus", "onResponse: " + Channel.getChannel());
}
});
Я не уверен, что если у меня есть больше, чтобы использовать RxJava, что бы быть лучшей практикой для достижения этой цели ?
Благодаря
Я сделал это ниже, не так ли? '.flatMap (новый Func1>() { @Override общественного Наблюдаемые Вызов (AccepttoChannel accepttoChannel) { // Строка маркер = ... // TODO экстракт маркер. Constants.HTTP.PARAMSAUTH.put ("канал", accepttoChannel.getChannel()); возвращение mAPI.getAccepttoChannel() getAuthenticationChannel (Constants.HTTP.PARAMSAUTH);. }} ) ' –