我正在开发一个将数据拉入服务器的应用程序。
为防止不必要地使用Web服务,我们建立了一个令牌系统,该系统每隔一段时间会更新一次。
我正在创建一种方法,该方法将在每次Web服务调用之前检查令牌是否不为空。
类似的东西:
public boolean isTokenValid(){
if (token == null){
renewToken();
return false;
}
return true;
}
如果我收到令牌已过期的服务器错误代码,请以相同的方式致电renewToken()
我的问题:
如何在收到有效令牌时再次调用我的方法?请记住,此后调用的方法是“动态的”:可以从任何Web服务调用该方法,因此要求该方法再次运行此调用。
潜在的解决方案:
1)创建与Web服务一样多的令牌续订方法。
例如:renewTokenGetProduct(),renewTokenGetProfile()...了解在获取有效令牌时要调用哪个Web服务。但这似乎是不合适的。
2)我也可以传递参数。例如renewToken(PRODUCT)或renewToken(PROFILE),然后使用条件或广播,但在我看来,这又有点矫kill过正/草率。
答案 0 :(得分:1)
从api方面尝试使用令牌添加另一个参数。
像令牌和类别。
如此
public boolean isTokenValid(){
if (token == null){
renewToken();
return false;
}
return true;
}
然后使用续订令牌:
if(category.equals("profile"){
//do necessary work
}
else if(category.equals("product"){
//do necessary work or pass intent
}
else{
//
}