1.Retrofit2概述
1.Retrofit框架是Square公司出品的目前非常流行的网络框架.
效率高,实现简单,运用注解和动态代理.
极大简化了网络请求的繁琐步骤,非常适合REST ful网络请求.
目前Retofit版本是2
2.Retrofit其实我们可以理解为OkHttp的加强版。
它也是一个网络加载框架。底层是使用OKHttp封装的。
准确来说,网络请求的工作本质上是OkHttp完成,而 Retrofit 仅负责网络请求接口的封装。
它的一个特点是包含了特别多注解,方便简化你的代码量。
并且还支持很多的开源库(著名例子:Retrofit + RxJava)
2.Retrofit2的好处
1.超级解耦
解耦?解什么耦?
我们在请求接口数据的时候,API接口定义和API接口使用总是相互影响,什么传参、回调等,耦合在一块。有时候我们会考虑一下怎么封装我们的代码让这两个东西不那么耦合,这个就是Retrofit的解耦目标,也是它的最大的特点。
2.可以配置不同HttpClient来实现网络请求,如OkHttp、HttpClient...
3.支持同步、异步和RxJava
4.可以配置不同的反序列化工具来解析数据,如json、xml...
5.请求速度快,使用非常方便灵活
3.Retrofit2的使用步骤
1.定义接口(封装URL地址和数据请求)
2.实例化Retrofit
3.通过Retrofit实例创建接口服务对象
4.接口服务对象调用接口中的方法,获取Call对象
5.Call对象执行请求(异步、同步请求)
4.数据解析器(Converter)
Retrofit支持多种数据解析方式
使用时需要在Gradle添加依赖
Gson:com.squareup.retrofit2:converter-gson:2.0.2
Jackson:com.squareup.retrofit2:converter-jackson:2.0.2
5.网络请求适配器(CallAdapter)
Retrofit支持多种网络请求适配器方式:guava、Java8和rxjava
guava:com.squareup.retrofit2:adapter-guava:2.0.2
Java8:com.squareup.retrofit2:adapter-java8:2.0.2
rxjava:com.squareup.retrofit2:adapter-rxjava:2.0.2