Я делаю запрос (любой, авторизация, регистрация и тд) и только потом узнаю, что нужно обновить TOKEN
, то есть получаю ошибку 401
.
Вот запрос для авторизации:
BaseApplication.getApiClient()
.signIn(accessToken, body)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<UserProfile>() {
@Override
public void onSubscribe(Disposable d) {
Log.d("-- SignInOnSubscribe", "Subscribed!");
}
@Override
public void onSuccess(UserProfile userProfile) {
if (userProfile.getErrorDetails() != null) {
onSignInFinishedCallback.onLoginFailure(userProfile.getErrorDetails());
Log.d("-- SignInOnError", userProfile.getErrorDetails());
} else {
onSignInFinishedCallback.onLoginSuccess(userProfile);
profileRepository.updateUserProfile(userProfile);
Log.d("-- SignInOnSuccess", userProfile.getName());
}
}
@Override
public void onError(Throwable e) {
Log.d("-- SignInOnError", e.getMessage());
if (e.getMessage().equals(Constants.CODE_UNAUTHORIZED)){
// Действие при ошибке 401
}
onSignInFinishedCallback.onLoginFailure(e.getMessage());
}
});
Сами запросы к API:
@POST("/api/login")
Single<UserProfile> getAccessToken(@Body Map<String, String> requestBody);
@POST("/api/abonent/login")
Single<UserProfile> signIn(@Header("X-ACCESS-TOKEN") String accessToken,
@Body Map<String, String> requestBody);
Скажем, запрос на авторизацию - запрос 1
, запрос на получение TOKEN
- запрос 2
.
Вопрос: Как обновить TOKEN
если получил ошибку в запросе 1
и после успеха запроса 2
, обратно делать запрос 1
?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я пытаюсь взаимодействовать с файлами HDFS (читать, создавать и тд