В момента работя с Retrofit и Okhttp и се опитвам да кеширам някои GET отговори. Моят код е:
OkHttpClient okHttpClient = new OkHttpClient();
File cacheDir = new File(System.getProperty("java.io.tmpdir"),
"ddcache");
HttpResponseCache cache = new HttpResponseCache(cacheDir, 2024);
okHttpClient.setResponseCache(cache);
OkClient cl=new OkClient(okHttpClient);
restAdapter = new RestAdapter.Builder().setEndpoint(API_URL)
.setLogLevel(RestAdapter.LogLevel.FULL)
.setClient(cl).build();
И дневникът показва тази заглавка:
HTTP/1.1 200 OK
Cache-Control: max-age=7200
Connection: Keep-Alive
Content-Type: text/html
Date: Tue, 18 Mar 2014 18:38:16 GMT
Keep-Alive: timeout=3, max=100
OkHttp-Received-Millis: 1395167895452
OkHttp-Response-Source: NETWORK 200
OkHttp-Sent-Millis: 1395167895378
Server: Apache/2.2.26 (Unix)
Transfer-Encoding: chunked
X-Powered-By: PHP/5.3.28
Проверявам отговора, като връщам Server Unix Time при всяко повикване и винаги връща ново, което означава
Кеш контрол: max-age=7200
напълно се игнорира Журналният файл в кеша също се актуализира с бележки „ЧИСТИ“ и „МРЪСНИ“, но нищо не се кешира. Има ли нещо очевидно, което не виждам?