2013-02-27 53 views
3

我试图用HttpResponseCache缓存这个文件:http://media.admob.com/sdk-core-v40.js。基本上,我调用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

对我来说,我有'缓存控制的响应:私人的,必重新验证,最大年龄= 0',不管我做什么,我都不能强迫它缓存。你解决了这个问题吗? – rraallvv 2017-12-20 21:20:43

+0

你通过了什么** src **? – 2018-02-16 13:54:47

回答

1

从它的外观,这是不缓存,因为响应文件有

Cache-Control:max-age=0 
+0

我想知道请求中的“Cache-Control max-stale”是否足以覆盖:http://stackoverflow.com/a/11714075/56285 – Jonik 2013-10-31 16:56:26