【发布时间】:2016-05-16 07:12:47
【问题描述】:
我正在尝试使用 Retrofit (2.0.0-beta3),但是当使用 Authenticator 添加令牌时,我似乎无法从同步调用中获取数据。我们在后端的日志记录只是显示了很多登录尝试,但我无法从正文中获取数据以实际添加到标题中。
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();
}
}
我不太确定为什么它甚至没有打印出任何东西。非常感谢您提供有关如何解决此问题的任何提示,感谢您抽出时间提供帮助。
这些是我一直在阅读的关于如何实施改造的资料。
使用验证器:
使用 Retrofit 2 进行同步调用:
【问题讨论】:
-
您确定 gson 的配置方式可以理解您的 Session 类吗?
-
异步调用 emailLogin(...) 工作,所以我不认为这是 gson 的问题。有没有一种简单的方法可以判断该呼叫出了什么问题?我看不到任何错误或任何东西。
标签: android authentication retrofit2