Retrofit
Retrofit 底层是基于 OkHttp 实现的,与其他网络框架不同的是,它更多使用运行时注解的方式提供功能
原理
通过 java 接口以及注解来描述网络请求,并用动态代理的方式生成网络请求的 request,然后通过 client 调用相应的网络框架(默认 okhttp)去发起网络请求, 并将返回的 response 通过 converterFactorty 转换成相应的数据 model,最后通过 calladapter 转换成其他数据方式(如 rxjava Observable)
Retrofit 流程
1.通过解析 网络请求接口的注解 配置 网络请求参数
2.通过 动态代理 生成 网络请求对象
3.通过 网络请求适配器 将 网络请求对象 进行平台适配
4.通过 网络请求执行器 发送网络请求
5.通过 数据转换器 解析服务器返回的数据
6.通过 回调执行器 切换线程(子线程 ->>主线程)
7.用户在主线程处理返回结果
Retrofit 优点
1.可以配置不同 HTTP client 来实现网络请求,如 okhttp、httpclient 等;
2.请求的方法参数注解都可以定制;
3.支持同步、异步和 RxJava;
4.超级解耦;
5.可以配置不同的反序列化工具来解析数据,如 json、xml 等
6.框架使用了很多设计模式