Volley: Как настроить Cache.Entry

Я использую библиотеку Googles Volley как свой проект для получения сетевых данных;

У меня есть RequestQueue

requestQueue = new RequestQueue(new DiskBasedCache(new File(context.getCacheDir(), DEFAULT_CACHE_DIR)), new BasicNetwork(new HttpClientStack(AndroidHttpClient.newInstance(userAgent)))); 

У меня также есть подклассы Request, и данные, возвращающиеся из сети, прекрасны. Моя проблема связана с кешированием: в 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-адрес запроса.

Есть предположения?

Благодаря!

У меня была такая же проблема, и я получил это решение:

 @Override protected Response<String> parseNetworkResponse(NetworkResponse response) { // Create a FakeCache that invalidate the data after 24 hour Cache.Entry mFakeCache = HttpHeaderParser.parseCacheHeaders(response); mFakeCache.etag = null; mFakeCache.softTtl = System.currentTimeMillis() + 86400 * 1000; mFakeCache.ttl = mFakeCache.softTtl; return Response.success(response.data, mFakeCache); } 
Intereting Posts
Поддержание как бесплатных, так и сторонних версий приложения Правильный способ добавления столбцов индекса в greenDao? Android Как переписать фильтр для моего ArrayAdapter? Как выбросить исключение, если метод выполняется из основного потока Flurry Analytics для Android: данные не отправляются на панель управления Flurry? Обновить текст уведомления, а не целое уведомление «Eventbus» Greenrobot: два фрагмента, вызывающих задачи асинхронной работы, получили Eventbus в замешательстве Android – Активность против ListActivity – Какой должен быть класс активности? Parse ~ 1 MB JSON на Android очень медленно Android WebView Inject Javascript перед загрузкой html Программное включение / отключение параметров доступности на Android-устройстве Android – Использование обработчиков? Текст уведомления слишком длинный и не отображается полный текст Эспрессо долго нажимает на пункт меню и всплывающее меню Android – невозможно получить местоположение gps на эмуляторе