Android retrofit封装(1)
来源:互联网 发布:阅读刷量软件 编辑:程序博客网 时间:2024/06/05 18:12
Android retrofit封装(1)
1经过请教大神之后,逐渐感觉到了retrofit几个核心的地方,又copy了一遍大神写的封装之后,决定转载一下,真心觉得跟大神交流就是爽。
2先看简单封装的代码
public class HttpManager { //设缓存有效期为1天 private static long CACHE_STALE_SCE = 60 * 60 * 24 * 1; //查询缓存的Cache-Control设置,为if-only-cache时只查询缓存而不会请求服务器,max-stale可以配合设置缓存失效时间 private static String CACHE_CONTROL_CACHE = "only-if-cached, max-statle=" + CACHE_STALE_SCE; private static HttpManager httpManager; private Retrofit retrofit; public static HttpManager getInstance(String baseUrl){ if(httpManager == null){ httpManager = new HttpManager(baseUrl); } return httpManager; } private HttpManager(String baseUrl){ File files = new File(Environment.getDownloadCacheDirectory().toString(),"cache"); int cacheSize = 10 * 1024 * 1024; Cache cache = new Cache(files,cacheSize);//设置缓存路径跟时间 OkHttpClient.Builder builder = new OkHttpClient().newBuilder(); builder.readTimeout(10, TimeUnit.SECONDS);//读取超时 builder.connectTimeout(10,TimeUnit.SECONDS);//建立连接超时 builder.cache(cache); OkHttpClient client = builder.build(); retrofit = new Retrofit.Builder().baseUrl(baseUrl) .client(client)//用我们自己写好的OkHttpClient 替换掉原生的client(这里是重点,让我们可以自由的设置一些我们想设置的条件) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); } //通过这个方法获取 网络请求接口 的实例 public <T> T creat(Class<T> service){ return retrofit.create(service); }}
3设置Application
public class MyApplication extends Application{ GetRequest_Interface getRequest_interface;//网络请求接口(这个就不多解释了吧) private static MyApplication application; @Override public void onCreate() { super.onCreate(); application = this; getRequest_interface = HttpManager.getInstance("http://baseUrl").creat(GetRequest_Interface.class); } public static MyApplication getInstance(){ return application; } public GetRequest_Interface getGetRequest_interface() { return getRequest_interface; }}
4用法
Observable<PicNaviBean> observable = MyApplication.getInstance().getGetRequest_interface().getPicNavi("参数1", "参数2");
5封装完的好处
就是不用每次请求都new Retrofit一大堆代码了,直接链式结构创建被观察者
6还有一个拦截器目前没研究明白,以后研究明白在完善
阅读全文
0 0
- Android retrofit封装(1)
- Android RxJava+Retrofit完美封装
- Android RxJava+Retrofit完美封装
- Android开发---RxJava+Retrofit封装
- Android Retrofit+RxJava+MVP封装
- Retrofit工具类(Retrofit二次封装)
- Android网络开源库-Retrofit(五)简易封装
- (备忘录)Rxjava2+Retrofit封装1
- 浅谈Android网络封装框架Retrofit
- Android MVP+Retrofit(封装)+RxJava实例
- Android开发之Retrofit进阶封装
- Android Retrofit的使和封装
- Retrofit -> 封装
- Retrofit封装
- Retrofit封装
- Retrofit封装
- 封装Retrofit
- 【Android】Retrofit的使用(1)-Retrofit介绍
- spring两种加载配置文件
- Python升级导致使用yum报错
- ThreadLocal使用实例
- PhoneInterfaceManager
- 进程基础
- Android retrofit封装(1)
- 【安全牛学习笔记】SQLMAP自动注入-ENUMERATION、BRUTE FORCE、UDF IN
- InnoDB recovery详细流程
- postgresql 数据库的备份与还原
- 微信红包实现原理
- 熊掌号落地页体验规范
- BZOJ3437 小P的牧场 【斜率优化dp】
- 隐藏resent记录,隐藏菜单栏记录
- I/O方式操作GPIO