2011-03-29 93 views
3

我想使用服务器缓存15分钟,所以我必须在setRequestProperty()中使用?使用服务器缓存15分钟

请帮助我..

这里是我的代码,我用..

private HttpURLConnection httpCon = null; 
httpCon = (HttpURLConnection) httpUrl.openConnection(); 
httpCon.setRequestMethod("GET"); 
httpCon.setRequestProperty("Connection", "Keep-Alive"); 
httpCon.setRequestProperty("Pragma","public"); 
httpCon.setRequestProperty("Cache-Control","maxage=900"); 
httpCon.setUseCaches(true); 

回答

3

你告诉你愿意为它缓存响应的服务器,但不保证服务器将做到这一点或启用这样做(除非你控制服务器也执行)。

您也可以尝试设置客户端和服务器的中间HTTP缓存,例如代理缓存(如Varnish,Pound或Squid)。

最后,您可以自己做浏览器缓存,它支持Android java.net包,但没有默认实现。要做到这一点:

- 检查出HttpURLConnection哪些细节(在“响应缓存”部分),您必须实现ResponseCache并调用setDefault。

- 也检查出ResponseCache Example有这方面的例子,以及最后要注意的东西(可能会或可能不会)。

祝你好运!

+2

如果你下了ResponseCache路线,请注意bug http://code.google.com/p/android/issues/detail?id=14537 - 直到2.3之前,Android不会调用finalize()或close()在OutputStream – 2011-04-15 20:35:42

+0

我想我需要为客户端和服务器设置中间HTTP缓存。 – 2011-04-18 07:06:33