如果你和我分享一些知识会很棒!这是我的问题 - 我们有一个Android应用程序。和服务器。对于一些呼叫,客户端需要从服务器发送先前获得的令牌,该令牌在有限的时间内是合法的。如果令牌不再有效,则从服务器返回错误,需要获取新令牌,我们需要重试该请求。
但是我如何使用Retrofit处理这种行为?有什么想法吗?
提前谢谢!
答案 0 :(得分:0)
如果回调失败并且错误消息是需要获取令牌,那么您尝试使用回调进行请求,然后您执行获取新令牌的请求,例如:
connectionInterface.getSomeStuff(object, new Callback<ObjectPOJO>() {
@Override
public void success(ObjectPOJO objectPOJO, Response response) {
//success
}
@Override
public void failure(RetrofitError error) {
if (error.getLocalizedMessage().equals("Token expire error")
connectionInterface.getToken();
}
然后在你的改装getToken回调中,如果成功,你将重做getSomeStuff方法,如果失败,你就让用户知道。例如:
connectionInterface.getToken(token, new Callback<token>() {
@Override
public void success(token token, Response response) {
//success and token has been added
//add the token to your request somehow...
connectionInterface.updateToken(token);
connectionInterface.getSomeStuff();
}
@Override
public void failure(RetrofitError error) {
//error let user know
}
如果您有任何其他问题,请与我们联系。我认为这将是最简单的方法。