Модернизация: контроль кэша никогда не включается в ответ
независимо от того, что я делаю, я никогда не вижу заголовоккэш-контроль в ответ.
настройки
дооснащение 1.6.0okHttp 1.6.0okHttp-urlConnection 1.6.0gson 2.2.4Android 4.0+1. Конфигурация
1.1 RestAdapter с моим 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 со стандартным OkHttpClient Здесь, при отладке я мог видеть, что клиент имеетКэш = NULL;
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(URL)
.setLogLevel(LogLevel.HEADERS)
.build();
2 Журнал
Для обеих конфигураций журналы одинаковы.
2.1 ЗАПРОС
06-28 13: 24: 05.601: D / Retrofit (1581): ---> HTTP GET myUri
06-28 13: 24: 05.601: D / Retrofit (1581): контроль кэша: общедоступный, max-age = 640000
06-28 13: 24: 05.601: D / Модификация (1581): ---> END HTTP (без тела)
2.2 ОТВЕТ
06-28 13: 24: 05.701: D / Retrofit (1581): <--- HTTP 200 myUri (102 мс)
06-28 13: 24: 05.701: D / Retrofit (1581):: HTTP / 1.1 200 OK
06-28 13: 24: 05.701: D / Retrofit (1581): Соединение: keep-alive
06-28 13: 24: 05.701: D / Retrofit (1581): Тип контента: текст / html
06-28 13: 24: 05.701: D / Retrofit (1581): Дата: сб, 28 июня 2014 13:24:01 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): Сервер: nginx / 1.6.0
06-28 13: 24: 05.701: D / Retrofit (1581): кодирование передачи: chunked
06-28 13: 24: 05.701: D / Retrofit (1581): Варьируется: 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 / Модификация (1581): <--- END HTTP (тело в -1 байт)
РЕДАКТИРОВАТЬ 03/07/2014
Я заметил, что в этом вопросеRetrofit + OkHttp в порядке при отправке запросов GET, но выдает SocketTimetout при отправке POST Аскер получает «контроль кеша» в ответ.
04-11 18: 00: 41.291: D / Retrofit (16390): ---> HTTP GET url
04-11 18: 00: 41.291: D / Retrofit (16390): ---> END HTTP (0-байтовое тело)
04-11 18: 00: 42.008: D / Retrofit (16390): <--- HTTP 200 url (716ms)
04-11 18: 00: 42.015: D / Retrofit (16390):: HTTP / 1.1 200 OK
04-11 18: 00: 42.015: D / Retrofit (16390): Cache-Control: max-age = 0, частный, необходимо переоценить
Все еще не может решить эту проблему ни в эмуляторах, ни в реальном устройстве, хотя ...