Retrofit是否缓存授权请求

时间:2014-08-25 07:55:04

标签: android caching authorization retrofit

我试图在我的应用中实施Retrofit,以及它工作得很好的一切,除了请求没有被缓存。

所以我有:

@GET("/mobile/api.php")
public void getPromos(
       @QueryMap Map<String, String> options, 
       Callback<ResultPromotions> callBack);

.....

 requestFacade.addHeader("Authorization", authorizationValue);
 requestFacade.addHeader("Cache-Control", "public, max-age=600");

...

 RestAdapter adapter = new RestAdapter.Builder()
            .setRequestInterceptor(requestInterceptor)
            .setClient(new OkClient(okHttpClient))
            .setEndpoint(ENDPOINT)
            .setConverter(new GsonConverter(gson))
            .setLogLevel(RestAdapter.LogLevel.FULL)
            .build();

所以我的问题是:剂量改造缓存授权请求?或者无法缓存此类请求?

1 个答案:

答案 0 :(得分:5)

Retrofit本身绝对没有缓存。

如果你想要缓存,它必须位于Retrofit之上的应用程序层,它知道你的域以及如何在其中缓存内容,或者它需要位于Retrofit下面的HTTP客户端层,后者知道HTTP的语义

OkHttp也是Square的HTTP客户端,它支持缓存服务器响应的语义。例如,如果来自服务器的响应具有Cache-Control标头,则它将被缓存,以便从缓存中提取相同资源的后续请求。