2014-11-05 37 views
0

我試圖用OKHttp的本地緩存緩存數據;我的問題是我無法控制服務器端的數據,並且響應頭緩存控制返回一個「無緩存」值。用OKHttp緩存數據

無論如何攔截請求添加一個頭緩存使用OkHttp回來的數據? (如果可能的話,我也想緩存特定的請求)。

謝謝! 最好的問候, 克里斯托弗史蒂文

回答

1

OkHttp目前沒有提供一個機制來擊敗Cache-Control: no-cache。 OkHttp將最終驗證服務器的響應,但如果服務器說存儲的響應仍然很好,那麼響應主體將不需要重新傳輸。

我們有一個feature request傑出的想要類似這樣的東西,儘管這很困難,因爲這可能意味着一個請求會產生多個響應。

+0

謝謝!我只需要服務器開發人員在獲得響應後開始正確緩存或依靠自己的內部緩存機制。 – chocospaz 2014-11-06 14:53:43

0

爲了防止其他人在這18個月的晚些時候遇到......您現在可以通過添加一個攔截器作爲網絡攔截器(因此在OkHttp處理它之前更新服務器響應)來「打敗」Cache-Control: no-cache

在OkHttp維基上有一個很好的例子https://github.com/square/okhttp/wiki/Interceptors#rewriting-responses

希望這會有所幫助。