2011-03-29 112 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