美文网首页
OKHttp、Retrofit、RXJava的介绍和使用

OKHttp、Retrofit、RXJava的介绍和使用

作者: APP福星高照 | 来源:发表于2019-07-24 20:48 被阅读0次

    OKHttp

    一个网络请求框架,使用了工厂原型模式构造,可以通过拦截器修改请求头、参数等。


    Retrofit是什么

    官网介绍是A type-safe HTTP client for Android and Java,是一个 RESTful 的 HTTP 网络请求框架的封装,但网络请求不是Retrofit来完成的,它只是封装了请求参数、Header、Url、返回结果处理等信息,而请求是由OkHttp3来完成的。

    从动态代理开始 builder的时候

    Retrofit使用动态代理,其实是为了开发者在写代码时方便调用

    适配转换Call对象,因为retrofit自己也有一套自己的,要和OKHttp转换

    通过CallAdapterFactory来转换为接口要的call对象

    实现原理——函数解析、网络请求和数据转换

    查考:https://www.jianshu.com/p/f57b7cdb1c99

    RxJava和RxAndroid

    RXJava是实现同步和异步的操作的,关键是异步,简单的两个方法就能实现。

    过去一般用AsynchTask 或handler很麻烦,代码不清晰,可读性差。所以就有了RXJava

    通过签约观察者实现观察的功能,有两种方法

    suscribe 和 observe() 

    他们差不多的,只是subscribe对observe做了扩展,内部添加了onStart()方法,可以做些准备工作,如view初始化,还有unSubscrite()用于取消的,他在防止内漏是很有用的哦

    RXJava的强大作用在于她的操作符:

    create : 最基本的Observable注册一个观察者

    just: 一句话就可发送值给观察者,不用和create那样麻烦要new一个接口对象。

    from: 对一组对象进行观察,如一个list

    flatMap: 把一个observable输出作为输入,作为新的observable进行再次监听;典型的list<object> -> object

    filter: 顾名思义,过滤条件,不符合的不监听,一般结合flatMap

    take(num)限定个数的,结合flatMap

    doOnNext() 如许输出前做些额外操作,如保存

    还有subscribeOn()/observeOn 用于切换线程的

    subscribe是被观察者的线程如后台Scheduler.io()

    observe是观察者线程如AndroidScheduler.MainThread()

    他们是差不多的,RxAndroid只是在Android的基础上对RXJava做了一些封装,如Observabl持有Context对象时防止内存泄露。

    是通过一个Subscription对象去实现的,在执行签约方法时,返回一个subscription,然后在destroy方法内进行解约。

    查考:https://www.jianshu.com/p/1cad42c4bc04

    相关文章

      网友评论

          本文标题:OKHttp、Retrofit、RXJava的介绍和使用

          本文链接:https://www.haomeiwen.com/subject/pybauxtx.html