2013-02-27 1 views
3

Я пытаюсь кэшировать этот файл: http://media.admob.com/sdk-core-v40.js с HttpResponseCache. В основном я вызываю функцию getFileFromUrl два раза, так что в первый раз он получает ресурс из Интернета, а во второй раз получает его из кеша.HttpResponseCache не кэширует файлы

Однако для обоих методов он дает следующую ошибку: «Ресурс не был кеширован! Java.io.FileNotFoundException: http://media.admob.com/sdk-core-v40.js». Означает ли это, что файл не был кэширован, и он не может получить к нему доступ? Что не так с кодом?

enableHttpCaching(); 

getFileFromURL(url); 
getFileFromURL(url); 


public static void getFileFromURL(String src) { 
    try { 
      URL url = new URL(src); 
      HttpURLConnection connection=(HttpURLConnection)url.openConnection(); 
      connection.setUseCaches(true); 
      connection.addRequestProperty("Cache-Control", "only-if-cached");   
      InputStream input = connection.getInputStream(); 
      System.out.println("The resource was cached!"); 
     }catch (FileNotFoundException e) { 
      System.out.println("The resource was not cached!" + e); 
     }catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
+0

В моем случае у меня есть ответ с 'Cache-Control: частным, должны-перепроверить, максимальный возраст = 0', и независимо от того, что я делаю, я не могу заставить его кэшировать. Вы решили проблему? – rraallvv

+0

Что ** src ** вы передаете? –

ответ

1

Из того, что он выглядит, это не кэширование, поскольку файл ответы имеет

Cache-Control:max-age=0 
+0

Интересно, достаточно ли 'Cache-Control max-stale' в запросе переопределить это: http://stackoverflow.com/a/11714075/56285 – Jonik

 Смежные вопросы

  • Нет связанных вопросов^_^