android - OkHttp3.0是怎么写缓存和读缓存?

浏览:74日期:2022-12-06

问题描述

最近学习了OkHttp3.01、怎么把数据写入缓存?2、怎么从缓存中读取数据?

问题解答

回答1:

参考这里

回答2:

private final OkHttpClient client; public CacheResponse(File cacheDirectory) throws Exception { int cacheSize = 10 * 1024 * 1024; // 10 MiB Cache cache = new Cache(cacheDirectory, cacheSize); client = new OkHttpClient.Builder().cache(cache).build(); } public void run() throws Exception { Request request = new Request.Builder().url('http://publicobject.com/helloworld.txt').build(); Response response1 = client.newCall(request).execute(); if (!response1.isSuccessful()) throw new IOException('Unexpected code ' + response1); String response1Body = response1.body().string(); System.out.println('Response 1 response: ' + response1); System.out.println('Response 1 cache response: ' + response1.cacheResponse()); System.out.println('Response 1 network response: ' + response1.networkResponse()); Response response2 = client.newCall(request).execute(); if (!response2.isSuccessful()) throw new IOException('Unexpected code ' + response2); String response2Body = response2.body().string(); System.out.println('Response 2 response: ' + response2); System.out.println('Response 2 cache response: ' + response2.cacheResponse()); System.out.println('Response 2 network response: ' + response2.networkResponse()); System.out.println('Response 2 equals Response 1? ' + response1Body.equals(response2Body)); }

相关文章: