美文网首页
Retrofit 源码学习细节点

Retrofit 源码学习细节点

作者: 三季人 | 来源:发表于2017-11-01 20:08 被阅读12次

    最近在慢慢的啃retrofit 源码,从中学习了很多,包括retrofit中包含设计模式,可以参考Retrofit源码探索中使用到的设计模式

    这篇文章主要记录学习retrofit 中的细节部分

    CallAdapterFractory

    1. callAdapterFactory是用来将retrofit 中默认的OkhttpCall(网络请求类)转化为我们在接口层中定义的返回类型对象。例如Observable<T>、Flowable<T>等。
    2. 每个请求中可以添加多个callAdapterFactory,通过retrofit.builde.addCallAdapterFactory()
    3. retrofit 中转化网络请求类,是从Adapter.FactoryList中遍历,调用get()方法,尝试去创建一个Call.Factory对象,如果为空,遍历下一个,知道找到合适的。

    ConvertAdapterFactory

    1. convertAdapterFactory是retrofit中用来将response返回的数据转化为我们在接口中定义的返回类型
    2. 同样可以添加多个convertAdapterFactory ,通过retrofit.build.addConverterFactory()
    3. convert和callAdapter一样也是有顺序的,添加的时候需要注意顺序
    添加顺序注意:

    想GsonCallAdapter这种比较全面的可以放在最后添加,应为retrofit 查找转换器的时候是从前到位查找的。

    retrofit 注解中的url

    我们在使用retrofit 的时候,必须现在build中设置baseurl,否则报错,其次,在请求接口的时候,在注解中设置url地址,有如下几种方式:

    注意: baseurl在retrofit2.0中必须以/结尾

    - 注解中的url地址是全地址,默认请求的就是url中的全地址
    - 注解中的url不以/开头,请求的地址就是 baseUrl+注解中的地址

    相关文章

      网友评论

          本文标题:Retrofit 源码学习细节点

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