美文网首页
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