Retrofit集成网络缓存
来源:互联网 发布:中国万网域名申请流程 编辑:程序博客网 时间:2024/06/01 09:16
1自定义拦截器 继承拦截器
public class NetworkInterceptor implements Interceptor {//缓存有效时间 private final static int TIME_CACHE_HOURS = 1; @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); Response response = chain.proceed(request); CacheControl cacheControl = new CacheControl.Builder() .maxAge(TIME_CACHE_HOURS, TimeUnit.HOURS) .maxStale(TIME_CACHE_HOURS, TimeUnit.HOURS) .build(); return response.newBuilder() .removeHeader("Pragma") //在这里生成新的响应并修改它的响应头 .header("Cache-Control", cacheControl.toString()) .build(); }}
2 在retrofit里面添加拦截器
private RetrofitFactory(String baseUrl ,Context context) { OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.connectTimeout(5, TimeUnit.SECONDS); builder.readTimeout(5, TimeUnit.SECONDS); builder.writeTimeout(5, TimeUnit.SECONDS); // 设置缓存大小 int cacheSize = 10 * 1024 * 1024; builder.addNetworkInterceptor(new NetworkInterceptor()); builder.cache(new Cache(new File(context.getExternalCacheDir(), "http_cache"), cacheSize)); //1.创建Retrofit对象 retrofit = new Retrofit.Builder().baseUrl(baseUrl) // 定义访问的主机地址 .client(builder.build()) .addConverterFactory(GsonConverterFactory.create()) //解析方法 .build(); }
3使用先获取实例:
public static RetrofitFactory getInstance(String baseUrl,Context context) { instance = new RetrofitFactory(baseUrl,context); return instance; }
4通过实例调用retrofit的api 获取response 通过response.body 获取结果
阅读全文
0 0
- Retrofit集成网络缓存
- Android网络缓存,retrofit+okhttp
- Retrofit网络请求+GreenDao数据缓存
- retrofit缓存
- Retrofit缓存
- Retrofit缓存网络数据RxCache--RxJava和数据库
- okhttp或者retrofit实现网络缓存504错误原因
- 使用Retrofit和Okhttp实现网络缓存。无网读缓存,有网根据过期时间重新请求
- 使用Retrofit和Okhttp实现网络缓存。无网读缓存,有网根据过期时间重新请求
- Retrofit+okhttp 缓存的
- retrofit+okhttp 实现缓存
- 修改RxCache为Retrofit增加先加载缓存后请求网络功能
- 如何实现一个独立于网络请求框架的缓存(与retrofit无缝衔接)
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(一)
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(二)
- Retrofit 网络请求
- Retrofit网络请求
- 网络框架 Retrofit
- MapReduce 详解
- 从文件中读入矩阵并且写入到另一个文件中
- poj1568 Find the Winning Move
- 使用import简化spring的配置文件
- 欢迎使用CSDN-markdown编辑器
- Retrofit集成网络缓存
- Cubic Eight-Puzzle UVA
- IK和pinyin分词器
- 倒计时
- ES6-rest参数和扩展运算符
- 访问TensorFlow官网的问题
- aws linux服务器,ubuntu,远程连接MySQL,ERROR 2003 (HY000): Can't connect to MySQL server on
- 【备忘】中移动大型分布式redis,solr,Linux,nginx,springmvc,mybatis电商项目
- angular上传文件和ajax上传文件