RxJava+Retrofit+Okhttp的使用心得

前言

现在的软件开发世界里已经出现了很多好用高效的开发框架,作为程序员的我们要随时保持警惕,紧跟潮流,学会使用大牛们所开发出来的东西,目前市场上对应用RxJava+Retrofit+Okhttp(个人认为优点主要在业务处理与逻辑的简化,小伙伴可以细心琢磨哦)已经成为一种主流,不会的小伙伴可以一起探讨学习哦。


这个我推荐大家看看四篇文章

RxJava详解

Retrofit官方文档

Retrofit详解

Okhttp详解

那么接下来如何运用RxJava+Retrofit+Okhttp完成一次网络请求呢,之前我也看了很多文章,但是做为刚入门的我使用起来还是陌生,有些地方还是不太明白,这里不得不感谢一下我的同事,他这两天确实拓宽了我很多的眼界,让我对这个框架大致有了一个认识。

按照传统网络处理方式,我们一般或通过okhttp提交请求,对与请求后的数据处理,我想大多数人都是利用Handler机制,没错,Handler也是很不错的,但是考虑一种情况,当还在网络请求的时候,应用突然结束怎么办,那这样岂不是要造成内存泄漏。而RxJava就可以很好的处理这个问题,那他是怎么做的呢,就是RxJava其实有两种对象在里面,就是大家所说的被观察者和观察者,两者之间是通过订阅产生联系,这个时候只要我们在应用结束的时候取消订阅,那么这个问题就解决了。

好话不多说,那怎么才能利用这种框架完成网络请求以及更加简洁的刷新界面呢?

1.首先我们先做初始化



```

private static final int DEFAULT_TIME_OUT=5;//超时时间

    private static final int DEFAULT_READ_OUT=10;//读超时时间

    private RetrofitmRetrofit=null;

    private static RetrofitServiceManagermRetrofitServiceManager=null;

  //构造方法中去初始化Retrifit和Okhttp

  private RetrofitServiceManager(){

OkHttpClient.Builder builder=new OkHttpClient.Builder();

      HttpLoggingInterceptor httpLoggingInterceptor=new HttpLoggingInterceptor();

      httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);

      builder.addInterceptor(httpLoggingInterceptor);

      builder.connectTimeout(DEFAULT_TIME_OUT, java.util.concurrent.TimeUnit.SECONDS);

      builder.readTimeout(DEFAULT_READ_OUT, java.util.concurrent.TimeUnit.SECONDS);

      //添加公共参数拦截器

// HttpCommonInterceptor httpCommonInterceptor;

//初始化Retrofit对象

      mRetrofit=new Retrofit.Builder()

.client(builder.build())//Okhttp对象

              .addCallAdapterFactory(RxJava2CallAdapterFactory.create())

.addConverterFactory(GsonConverterFactory.create())

.baseUrl(Constant.Base_url)

.build();

  }

//获取实例

    public static RetrofitServiceManagergetInstance(){

if(mRetrofitServiceManager==null)

return new RetrofitServiceManager();

        return mRetrofitServiceManager;

    }

/**用于生成接口实例*/

    public T create(Class service){

return mRetrofit.create(service);

    }


```


说明

初始化Okhttp和Retrofit,Retrofit支持RxJava2响应式的请求操作。create方法用生成service层的接口实例。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,793评论 19 139
  • 前言RxJava和Retrofit也火了一段时间了,不过最近一直在学习ReactNative和Node相关的姿势,...
    AFinalStone阅读 3,593评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,852评论 25 709
  • 江郎才尽已无招, 忍看落花水上漂。 一笔难把情绘出, 万红总被雨折夭。 世事无常人皆晓, 人心叵测谁能料? 纵使命...
    读书无缘主沉浮阅读 2,778评论 0 4
  • 海口市原副市长李杰受贿900余万元被判刑十一年。法院审理查明,2004年至2015年,李杰利担任海口市交通局局长等...
    力量时评阅读 2,444评论 0 1