Retrofit VS OkHttp,谁是最强网络开发框架?

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Retrofit VS OkHttp,谁是最强网络开发框架?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

毫无疑问,OkHttp的横空出世,让其他网络请求框架都黯然失色。它是一个高效的HTTP客户端,作为目前AndROId开发中最为广泛使用的网络框架。不得不说OkHttp是真的强大真的香。

但在实际的项目开发过程中,这个框架也给开发者们留下了不少问题F1a;

  • 无法适配自动进行线程的切换,消息回来需要切到主线程,主线程要自己去写。
  • 调用比较复杂,需要自己进行封装。
  • 用户网络请求的接口配置繁琐,尤其是需要配置请求body,请求头,参数的时候;
  • 数据解析过程需要用户手动拿到responsbody进行解析,不能复用;
  • 缓存失效:网络请求时一般都会获取手机的一些硬件或网络信息,比如使用的网络环境。同时为了信息传输的安全性,可能还会对请求进行加密。在这些情况下OkHttp的缓存系统就会失效了,导致用户在无网络情况下不能访问缓存。

但RetrofIT的出现可谓是雪中送炭,通过在OkHttp的基础上进行封装,切实解决了这些问题,让我们在网络框架开发上更加的游刃有余。

Retrofit对OkHttp做了什么

Retrofit是一个非常强大的封装框架,可以配置不同HTTP client来实现网络请求,如okhttp、httpclient等;可以定制请求方法的参数注解;可以同步或异步RxJava;轻松实现超级解耦;配置不同的反序列工具来解析数据,而且设计模式颇多,使用非常方便灵活:

Retrofit VS OkHttp,谁是最强网络开发框架?

stay大神整理的Retrofit码流程图

网络请求的工作本质上仍旧是 OkHttp 完成,Retrofit 负责网络请求接口的封装,并没有改变网络请求的本质,因为OkHttp已经足够强大。Retrofit的封装则是让我们更加游刃有余,里面涉及到非常丰富的设计模式,通过注解直接配置请求,可以使用不同的http客户端,虽然默认用http,但是可以通过不同的JSON Converter 来序列化数据,同时对RxJava提供支持。

Retrofit + OkHttp + RxJava是目前比较潮的一套框架。但这套框架其实是有一定门槛的,尤其是Retrofit的核心原理掌握。和OkHttp一样,Retrofit现在也是大厂面试的必会问题之一:

Retrofit VS OkHttp,谁是最强网络开发框架?

诸多面试官也会在这部分打出连环重拳:

  • Retrofit 是如何工作的
  • 用过哪些网络加载库?Retrofit核心实现原理
  • 如果让你实现Retrofit的某些核心功能,你会考虑怎么去实现?
  • Retrofit的注解是怎么解析的 ?
  • Retrofit网络请求层用的什么?
  • Retrofit中使用了哪些设计模式?
  • Retrofit在OkHttp上做了哪些封装?动态代理和静态代理的区别,是怎么实现的?
  • Android开发Repository层如何拿到retrofit返回的数据?
  • Retrofit也用apt去做是否可行?为什么不用apt而用动态代理?

怎么快速的深入了解Retrofit源码层原理?

《深入Retrofit网络实现源码分析及深度解析OKhttP实现原理》

《Android百大框架源码解析》

《从OkHttp源码解读到手写网络访问框架》

上述视频中有对Android 网络框架进行讲解,大家可以去参考学习。

《Android百大框架源码解析》知识点归纳已整理至GitHub,大家可以点击下方小卡片进行参考学习。

Retrofit VS OkHttp,谁是最强网络开发框架?

脚本宝典总结

以上是脚本宝典为你收集整理的Retrofit VS OkHttp,谁是最强网络开发框架?全部内容,希望文章能够帮你解决Retrofit VS OkHttp,谁是最强网络开发框架?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。