此缓存需要用最新版本的OK依赖,compile
'com.squareup.okhttp3:okhttp:3.7.0'//并在main_fast里面添加读写sdcard的权限。即可
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>//缓存文件夹
File file
= new File
(getContext
().getExternalCacheDir
().toString
(), "cache");
//缓存大小为10M
int cacheSize
= 10 * 1024 * 1024;
//创建缓存对象
final Cache cache
= new Cache
(file
, cacheSize
);
OkHttpClient cline
=new OkHttpClient
.Builder
().addNetworkInterceptor
(new Interceptor() {
@Override
public Response intercept
(Chain
chain) throws IOException {
Response proceed
= chain.proceed
(chain.request
());
return proceed
.newBuilder
().removeHeader
("pragma")
.header
("Cache-Control", "max-age=60").build
();
}
}).cache
(cache
).build
();
Request request
= new Request
.Builder
().get
().url
(url
).build
();
Call call
= cline
.newCall
(request
);
call
.enqueue
(new Callback() {
@Override
public void onFailure
(Call
call, IOException e) {
}
@Override
public void onResponse
(Call
call, Response response) throws IOException {
String s
= response.body
().string
();
Message message
= new Message
();
message
.what
= 0;
message
.obj
= s
;
handler
.sendMessage
(message
);
}
});
转载请注明原文地址: https://www.6miu.com/read-212.html