Как изменить параметры повторного запроса после ошибки в RxJavaAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как изменить параметры повторного запроса после ошибки в RxJava

Сообщение Anonymous »

Я отправляю запрос на вход на сервер с модификацией 2.0, и сервер возвращает клиенту токен сеанса, который я должен использовать в других запросах, но этот токен имеет ограниченный срок действия, и по истечении его срока действия сервер возвращает HTTP ошибка 401.
После получения этой ошибки я пытаюсь выполнить повторный вход с помощью следующего кода:

Код: Выделить всё

    holder.getApi(GuideProfileApi.class)
.getProfile(String.valueOf(holder.getServerId()), holder.getServerToken())
.subscribeOn(Schedulers.io())
.retryWhen(new Function apply(Observable throwableObservable) throws Exception {
return throwableObservable.flatMap(new Function apply(Throwable throwable) throws Exception {
if (throwable instanceof HttpException &&  ((HttpException)throwable).code() == 401) {
RegistryLoginResult loginResult = holder.login().blockingSingle();
return holder.getApi(GuideProfileApi.class)
.getProfile(String.valueOf(loginResult.getUserId()), loginResult.getSessionToken());
}
return Observable.error(throwable);
}
});
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer
() {
@Override
public void accept(ProfileResult profileResult) throws Exception {
Log.d("Result", profileResult.toString());
}
}, new Consumer() {
@Override
public void accept(Throwable throwable) throws Exception {
Log.e("Result", throwable.getLocalizedMessage());
}
});
И запрос на повтор отправляется, но параметры запроса такие же, как и при неправильном запросе (до повторного входа в систему). Как я могу изменить параметры запроса перед его повторной отправкой?


Подробнее здесь: https://stackoverflow.com/questions/416 ... -in-rxjava
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»