Я пытаюсь использовать Retrofit (2.0.0-beta3), но при использовании Authenticator для добавления токена я не могу получить данные от синхронного вызова. Наш журнал в фоновом режиме показывает много попыток входа в систему, но я не могу получить данные из тела, чтобы фактически добавить в заголовок.Android - Модернизация 2 - Результат аутентификатора
public static class TokenAuthenticator implements Authenticator {
@Override
public Request authenticate(Route route, Response response) throws IOException {
// Refresh your access_token using a synchronous api request
UserService userService = createService(UserService.class);
Call<Session> call = userService.emailLogin(new Credentials("handle", "pass"));
// This call is made correctly, as it shows up on the back-end.
Session body = call.execute().body();
// This line is never hit.
Logger.d("Session token: " + body.token);
// Add new header to rejected request and retry it
return response.request().newBuilder()
.header("Auth-Token", body.token)
.build();
}
}
Я не совсем уверен, почему он даже не распечатывает ничего. Любые советы о том, как решить эту проблему, будут очень благодарны, спасибо, что нашли время, чтобы помочь.
Это те источники, которые я читал о том, как реализовать модернизацию.
Использование Authenticator:
Выполнение синхронных вызовов с Модернизированный 2:
вы уверены, что gson сконфигурирован таким образом, он может понять ваш класс Session? – gropapa
Вызов электронной почты (...) асинхронно работает, поэтому я не думаю, что это проблема с gson. Есть ли простой способ рассказать, что происходит с этим звонком? Я не вижу никаких ошибок или чего-то еще. –