无论我做什么,我都无法在响应中看到标题缓存控制。
设置
1。构造
1.1使用我的OkHttpClient RestAdapter
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 在这里,调试时我可以看到客户端有 cache = 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):Cache-Control:public, 最大年龄= 640000
06-28 13:24:05.601:D / Retrofit(1581):---> END HTTP(无正文)
2.2回复
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):连接:保持活力
06-28 13:24:05.701:D / Retrofit(1581):Content-Type:text / html
06-28 13:24:05.701:D / Retrofit(1581):日期:星期六,2014年6月28日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):转移编码:分块
06-28 13:24:05.701:D / Retrofit(1581):变化:接受编码
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)
编辑03/07/2014
我注意到在这个问题Retrofit+OkHttp is ok when sending GET requests but gives SocketTimetout when sending POST中,提问者得到了“缓存控制”作为回应。
04-11 18:00:41.291:D / Retrofit(16390):---> HTTP GET网址
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):缓存控制:max-age = 0,私有,必须重新验证
虽然不能在仿真器和真实设备中解决这个问题......
答案 0 :(得分:0)
我很蠢,我们没有在我们的后端正确设置缓存!