我正在使用 Google 的 Volley Library 作为获取网络数据的设计;
我已经设置了一个 RequestQueue
requestQueue = new RequestQueue(new DiskBasedCache(new File(context.getCacheDir(),
DEFAULT_CACHE_DIR)), new BasicNetwork(new
HttpClientStack(AndroidHttpClient.newInstance(userAgent))));
我还对请求进行了子类化,并且从网络返回的数据就好了。我的问题是缓存:在 parseNetworkResponse() 中,当我调用时,它在我的 Request 子类中被覆盖
return Response.success(list, HttpHeaderParser.parseCacheHeaders(response));
HttpHeaderParser.parseCacheHeaders(response) 返回 null 因为服务器在其响应标头中设置为“无缓存”......无论如何我仍然想将此数据缓存可变的小时数(可能是 24 小时),怎么能我通过创建一个凌空 Cache.Entry... 我的理解是 URL 被用作缓存键值(我希望它是 URL)。
综上所述,由于 HttpHeaderParser.parseCacheHeaders(response) 返回 null,我想创建一个新的 Cache.Entry 设置为 24 小时后过期,并且缓存键是请求的 URL。
有什么想法吗?
谢谢!