retrofit总结

mac2024-03-28  59

一.简介

Retiofit SQUARE公司开发的,是一个符合RESTFUL设计风格请求网络封装的框架,其底层进行网络请求用的是OKHTTP Retrofit就是一个网络请求框架的封装,底层的网络请求默认使用的Okhttp,本身只是简化了用户网络请求的参数配置等,还能与Rxjava相结合,使用起来更加简洁方便。

二.功能

1.通过注解配置网络请求参数 2. 支持同步异步的请求 3.可以添加多个解析器,支持多种的数据类型解析 4.还提供了RXJava的支持

三.优点

1.简洁易用:通过注解配置网络请求参数,而且使用了大量的设计模式简化框架 2.可扩展性好:功能模块高度封装,解耦彻底,比如自定义converters解析器等

四.过程

App应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作 在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,Retrofit根据用户的需求对结果进行解析

五.使用

步骤1:添加Retrofit库的依赖 步骤2:创建 接收服务器返回数据 的类 步骤3:创建 用于描述网络请求 的接口 步骤4:创建 Retrofit 实例 步骤5:创建 网络请求接口实例 并 配置网络请求参数 步骤6:发送网络请求(异步 / 同步)

封装了 数据转换、线程切换的操作 步骤7:处理服务器返回的数据

涉及到的设计模式

外观模式,构建者模式,工厂模式,代理模式,适配器模式,策略模式,观察者模式

源码分析: 我们先看下retrofit.create()方法 这里用到了一个公共技术点之 Java 动态代理,create 方法传入一个 Class ,这个 Class 对象就是请求网络的接口对象 …

ServiceMethod<Object, Object> serviceMethod =(ServiceMethod<Object, Object>) loadServiceMethod(method); OkHttpCall<Object> okHttpCall = new OkHttpCall<>(serviceMethod, args); return serviceMethod.callAdapter.adapt(okHttpCall);

重点看这三行代码 第一行 loadServiceMethod(method) 单例创建了一个serviceMothod的对象

第二行 new OkHttpCall<>(serviceMethod, args) 创建了一个 OkHttpCall ,serviceMethod 和 args 是 OkHttpCall 的成员函数。 https://blog.csdn.net/qq_37199105/article/details/78804556

最新回复(0)