造轮子系列-自己动手写HTTP框架

课程介绍

随着Android的发展,各路大神的贡献,我们可用的轮子越来越多。比如HTTP请求框架,有自家的Volley,Square的okhttp, async-http-lib, 还有聚合版的xUtils以及AFinal。我想你肯定用过其中一个。

我们当然不是要来剖析科普这些第三方的网络请求框架,而是尝试自己造轮子。通过造轮子,感受从0到1的过程,希望能让大家学会举一反三,在自己的工作中多去思考。

Stay版的HTTP框架比较接地气,在纯粹的HTTP请求之上增加了不少扩展,而这些扩展又是我们工作中经常会碰到的问题。
比如说:

  • 其他lib返回的服务器数据格式比较少(File, String, JSONObject, JSONArray), 但在我们的框架里只需要声明泛型T,你就能得到想要的Object。你再也不需要手写JSON解析。
  • 我们的API请求中,常常会返回一些全局异常,比如TOKEN EXPIRED,账号在其他设备登录。这时,不管在哪个activity,我们都需要重新登录。在我们的框架里提供了全局异常解析,你只需要filter该异常,而不需要在每个onFailure回调中判断处理。
  • 服务器返回的数据可能需要保存至数据库或排序等耗时操作,在我们的框架中会通过回调的方式,将反序列化的Object再包装一层返回给上层。这样我们不需要再另开线程,也不用担心ANR。

像这样的扩展还有很多,当你学完本课程,你会找到更多的扩展点,去根据自己的产品来定制网络请求框架。你也再不用害怕看不懂|改不了这样的第三方框架。其他功能点Stay不再赘述,你可以通过观看免费试听课或者查看课程目录详情来了解。

框架永远都不可能变得完美,它是基于当前项目环境下的最优产物,所以Stay不可能教会你所有的功能知识点,但是会把这种解决问题的能力传递给你,不思考不实践是学不会的。

既然是框架课程,已经脱离了单纯的API调用,其高度抽象与伸缩性不是那么容易就能理解,希望同学们能耐心的学习,花时间去实践,磨刀不误砍柴工,只要有所领悟,它给你带来的不仅仅高效开发这么简单。

课程学习tips:

  1. 部分课时会有作业思考题,多思考多演练,这样才会有提升。
  2. 每个git上的commit对应课程上的一个课时,请勿直接切换到最新节点,你需要感受的是代码从0到1的过程,期间的TODO,实现,优化甚至重构才是精华。
  3. 课程中可能遇到的问题也可能是其他同学的问题,请在讨论区中提问,Stay会统一回复,这样Stay会有更多的精力来设计其他优质课程。
  4. 课程中的代码均为Stay手敲,但不推荐大家跟着视频照抄,务必一节课时或一整期课程看完后用自己的方式来实现。GIT代码只是用来借鉴。
  5. Stay重思维,轻编码。我希望传递的是思维方法,与我敲的代码无关,与我的陈述步骤无关。

技术没什么了不起,因为我们只是用技术在排列组合,而不是发明技术,所以我们没那么值钱。而且和流水线上的工人一样,麻木的坐在车间重复着组装。我们的大多数和他们的大多数一样,加班,生活单调。唯一的出路不是创业或者改行,而是不断的去尝试不同的组合,在不断的自我变革中寻找新的契机,新的自我。

看完了请给个反馈,好评我收下,差评我改进,谢谢。当然如果觉得不值,无条件退款。

生活不应该只有工作,Stay还有更多编程与感悟希望和你分享。如果我的磁场吸引到你,可以通过以下方式找到我。

课程章节

  • 第1章 V3版重制课程上线,请从第七章开始看
  • 第2章 基础框架搭建(不甜不要钱)
  • 第3章 框架扩展
  • 第4章 答疑
  • 第5章 我是一条分割线
  • 第6章 最新v3版HTTP框架课程来了
  • 第7章 大不一样(GIT+AS+作业+互动)
  • 第8章 基础框架搭建
  • 第9章 功能扩展
  • 第10章 请求中的异常处理
  • 第11章 取消请求
  • 第12章 专属场景扩展
  • 第13章 小结

更多教程

教程不断整理更新中,以上截图仅供参考,如需了解更多视频教程的详细信息请到如下地址查看:

教程分类说明https://itvideos.github.io/categories/

获取方式

关于教程、获取方式、温馨提示

坚持原创技术分享,您的支持将鼓励我继续创作!