Retrofit: Cache-Kontrolle ist nie in der Antwort enthalten
Egal was ich tue, ich kann den Header nie sehenCache-Kontrolle in der Antwort.
die Einstellungen
Nachrüstung 1.6.0okHttp 1.6.0okHttp-urlConnection 1.6.0gson 2.2.4Android 4.0+1. Konfiguration
1.1 RestAdapter mit meinem OkHttpClient
OkHttpClient okHttpClient = new OkHttpClient();
Cache cache = new Cache(getCacheDir(), 1024);
okHttpClient.setCache(cache);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(URL)
.setClient(new OkClient(okHttpClient))
.setLogLevel(LogLevel.HEADERS)
.build();
1.2 RestAdapter mit dem Standard OkHttpClient Hier konnte ich beim Debuggen sehen, dass der Client hatcache = null;
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(URL)
.setLogLevel(LogLevel.HEADERS)
.build();
2 Log
Für beide Konfigurationen sind die Protokolle gleich.
2.1 ANFRAGE
06-28 13: 24: 05.601: D / Retrofit (1581): ---> HTTP GET myUri
06-28 13: 24: 05.601: D / Retrofit (1581): Cache-Kontrolle: öffentlich, maximales Alter = 640000
06-28 13: 24: 05.601: D / Retrofit (1581): ---> END HTTP (keine Nachricht)
2.2 ANTWORT
06-28 13: 24: 05.701: D / Retrofit (1581): <--- HTTP 200 myUri (102 ms)
06-28 13: 24: 05.701: D / Retrofit (1581):: HTTP / 1.1 200 OK
06-28 13: 24: 05.701: D / Retrofit (1581): Verbindung: Keep-Alive
06-28 13: 24: 05.701: D / Retrofit (1581): Inhaltstyp: Text / HTML
06-28 13: 24: 05.701: D / Retrofit (1581): Datum: Samstag, 28. Juni 2014, 13:24:01 Uhr GMT
06-28 13: 24: 05.701: D / Retrofit (1581): OkHttp-Received-Millis: 1403961845708
06-28 13: 24: 05.701: D / Retrofit (1581): OkHttp-Response-Source: NETWORK 200
06-28 13: 24: 05.701: D / Retrofit (1581): OkHttp-Sent-Millis: 1403961845680
06-28 13: 24: 05.701: D / Retrofit (1581): Server: nginx / 1.6.0
06-28 13: 24: 05.701: D / Retrofit (1581): Transfer-Encoding: Chunked
06-28 13: 24: 05.701: D / Retrofit (1581): Vary: Accept-Encoding
06-28 13: 24: 05.701: D / Retrofit (1581): X-Powered-By: PHP / 5.5.12-1 ~ dotdeb.1
06-28 13: 24: 05.701: D / Retrofit (1581): <--- END HTTP (-1-Byte-Body)
EDIT 03/07/2014
Das ist mir bei dieser Frage aufgefallenRetrofit + OkHttp ist in Ordnung, wenn GET-Anfragen gesendet werden, gibt aber SocketTimetout aus, wenn POST gesendet wird der Fragesteller erhält als Antwort "Cache-Kontrolle".
04-11 18: 00: 41.291: D / Retrofit (16390): ---> HTTP GET-URL
04-11 18: 00: 41.291: D / Retrofit (16390): ---> END HTTP (0-Byte-Body)
04-11 18: 00: 42.008: D / Retrofit (16390): <--- HTTP 200 URL (716 ms)
04-11 18: 00: 42.015: D / Retrofit (16390):: HTTP / 1.1 200 OK
04-11 18: 00: 42.015: D / Retrofit (16390): Cache-Kontrolle: Maximales Alter = 0, privat, muss erneut validiert werden
Kann dieses Problem weder in Emulatoren noch in einem realen Gerät lösen ...