retrofit总结

一.简介

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值