Retrofit: controle de cache nunca incluído na resposta
não importa o que eu faça, nunca consigo ver o cabeçalhocontrole de cache na resposta.
Configurações
retrofit 1.6.0okHttp 1.6.0okHttp-urlConnection 1.6.0gson 2.2.4Android 4.0 ou superior1. Configuração
1.1 RestAdapter com meu 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 com o OkHttpClient padrão Aqui, ao depurar, pude ver que o cliente temcache = nulo;
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(URL)
.setLogLevel(LogLevel.HEADERS)
.build();
2 Log
Para as duas configurações, os logs são os mesmos.
2.1 PEDIDO
06-28 13: 24: 05.601: D / Retrofit (1581): ---> HTTP GET myUri
06-28 13: 24: 05.601: D / Retrofit (1581): Controle de cache: público, idade máxima = 640000
06-28 13: 24: 05.601: D / Retrofit (1581): ---> END HTTP (sem corpo)
2.2 RESPOSTA
06-28 13: 24: 05.701: D / Retrofit (1581): <--- HTTP 200 myUri (102ms)
06-28 13: 24: 05.701: D / Retrofit (1581):: HTTP / 1.1 200 OK
06-28 13: 24: 05.701: D / Retrofit (1581): Conexão: manter ativo
06-28 13: 24: 05.701: D / Retrofit (1581): Tipo de conteúdo: text / html
06-28 13: 24: 05.701: D / Retrofit (1581): Data: sábado, 28 de junho de 2014 13:24:01 GMT
O objetivo é facilitar o acesso à informação e garantir a segurança dos usuários.
Se você é uma pessoa que gosta de se divertir e se divertir com os amigos, aqui vai uma dica:
O evento é aberto ao público, com entrada gratuita, com entrada gratuita.
06-28 13: 24: 05.701: D / Retrofit (1581): Servidor: 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): Variar: Aceitar-codificação
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 (corpo de -1 bytes)
EDIT 03/07/2014
Percebi que nesta perguntaRetrofit + OkHttp está ok ao enviar solicitações GET, mas fornece SocketTimetout ao enviar POST o solicitante obtém "controle de cache" em resposta.
04-11 18: 00: 41.291: D / Retrofit (16390): ---> URL de HTTP GET
04-11 18: 00: 41.291: D / Retrofit (16390): ---> END HTTP (corpo de 0 bytes)
04-11 18: 00: 42.008: D / Retrofit (16390): <--- URL do HTTP 200 (716ms)
04-11 18: 00: 42.015: D / Retrofit (16390):: HTTP / 1.1 200 OK
04-11 18: 00: 42.015: D / Retrofit (16390): Controle de cache: idade máxima = 0, privado, deve-revalidar
Ainda não é possível resolver esse problema nem em emuladores nem em um dispositivo real ...