为了账号安全,请及时绑定邮箱和手机立即绑定

使用OKHttp进行改造可以在离线时使用缓存数据

使用OKHttp进行改造可以在离线时使用缓存数据

萧十郎 2019-07-29 11:13:27
使用OKHttp进行改造可以在离线时使用缓存数据我正在尝试使用Retrofit和OKHttp来缓存HTTP响应。我按照这个要点,结束了这段代码:File httpCacheDirectory = new File(context.getCacheDir(), "responses");HttpResponseCache httpResponseCache = null;try {      httpResponseCache = new HttpResponseCache(httpCacheDirectory, 10 * 1024 * 1024);} catch (IOException e) {      Log.e("Retrofit", "Could not create http cache", e);}OkHttpClient okHttpClient = new OkHttpClient();okHttpClient.setResponseCache(httpResponseCache);api = new RestAdapter.Builder()           .setEndpoint(API_URL)           .setLogLevel(RestAdapter.LogLevel.FULL)           .setClient(new OkClient(okHttpClient))           .build()           .create(MyApi.class);这是带有Cache-Control标头的MyApipublic interface MyApi {    @Headers("Cache-Control: public, max-age=640000, s-maxage=640000 , max-stale=2419200")    @GET("/api/v1/person/1/")    void requestPerson(            Callback<Person> callback   );首先,我在线请求并检查缓存文件。有正确的JSON响应和标题。但是当我尝试离线请求时,我总是得到RetrofitError UnknownHostException。我还有什么办法让Retrofit从缓存中读取响应吗?编辑: 因为OKHttp 2.0.x HttpResponseCache是Cache,setResponseCache是setCache
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 692 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信