yale8848/RetrofitCache

通过Interceptor动态添加参数的改怎么处理

Closed this issue · 4 comments

gzsll commented

RT,如果每个请求我会通过Interceptor添加Token,然后获取到的cache time就都是0了,这种情况改怎么处理

请帖上代码看看

gzsll commented

@OverRide
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
// Add access_token parameter if user login
UserInfo userInfo = mFRVAccountManager.getUserInfo();
String accessToken = userInfo != null ? userInfo.token() : null;
HttpUrl originalUrl = request.url();
if (!TextUtils.isEmpty(accessToken) && originalUrl != null && TextUtils.isEmpty(originalUrl.queryParameter("access_token"))) {
HttpUrl url = originalUrl.newBuilder().addEncodedQueryParameter("access_token", accessToken).build();
request = request.newBuilder().url(url).build();
}
return chain.proceed(request);
}
通过intercept添加access_token

你自己给url添加新的字段,导致原始请求url链接发生变化,最后找不到这个新的链接,cache time就成默认值了;
我下版本再想办法兼容处理一下这个问题

请更新至1.0.7
RetrofitCache.getInstance().addIgnoreParam("access_token");