问题陈述:
我在我的应用程序中使用 Retrofit 进行 API 调用。目前我有 20 多个改造接口,具有不同的Callbacks
. 目前,当 appINVALID_SESSION_ID
在这些接口中的任何一个中接收时(比如UpdateUserAPI
),我必须ACCESS_TOKEN
通过调用AccessTokenAPI
.
方法建议:
当 appINVALID_SESSION_ID
在Callback
in 中接收到时UpdateUserAPI
,调用AccessTokenAPI
以获取 new ACCESS_TOKEN
。收到 newACCESS_TOKEN
后,用new发布实际调用(带有初始参数UpdateUserAPI
)ACCESS_TOKEN
。但这需要将参数保存在实现UpdateUserAPI
. 另外我只需要重试ACCESS_TOKEN
一次,应该处理。
实现上述要求的最佳方法是什么?
创建自己的 TokenInterceptor
public class TokenInterceptor implements Interceptor
然后将其设置为您的 okktpclient
Interceptor tokenInterceptor = new TokenInterceptor(provideUserLoginDao(appDatabase));
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(tokenInterceptor)
.writeTimeout(50, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.build();
这篇文章中的有用信息还有:使用 Retrofit 刷新 OAuth 令牌而不修改所有调用
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句