资源共享论坛-专业共享VIP视频

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12457|回复: 967

[『网站建设』] [造轮子系列] 自己动手写HTTP框架

[复制链接]
  • TA的每日心情
    郁闷
    2018-3-18 22:59
  • 签到天数: 66 天

    连续签到: 1 天

    [LV.6]常住居民II

    641

    主题

    700

    帖子

    2742

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2742
    发表于 2016-8-23 15:56:23 | 显示全部楼层 |阅读模式
    随着Android的发展,各路大神的贡献,我们可用的轮子越来越多。比如HTTP请求框架,有自家的Volley,Square的okhttp, async-http-lib, 还有聚合版的xUtils以及AFinal。我想你肯定用过其中一个。
    我们当然不是要来剖析科普这些第三方的网络请求框架,而是尝试自己造轮子。通过造轮子,感受从0到1的过程,希望能让大家学会举一反三,在自己的工作中多去思考。
    Stay版的HTTP框架比较接地气,在纯粹的HTTP请求之上增加了不少扩展,而这些扩展又是我们工作中经常会碰到的问题。

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

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

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



    课程目录:

    第1章V3版重制课程上线,请从第七章开始看~
    1Http框架介绍(不收费)可试听整节00:23:34
    第2章基础框架搭建(不甜不要钱)
    1你造HTTPClient还可以这么写不(不收费)可试听整节00:24:32
    2基础框架就这么搭好了,你敢信?(不收费)可试听整节00:36:55
    第3章框架扩展
    1我要的是对象,不是你丫json字符串00:30:24
    还在对着json协议手写javabean,手动写解析?真low。浪费时间的说。三分钟创建javabean,调通API,拿到对象。不行你打我。
    220行代码支持下载进度更新,我说的是真的!00:16:13
    3立即取消HTTP请求是骗你的,这里是有延迟的。00:23:07
    4timeout自动重连有多难?5分钟就搞定00:13:59
    5缓存刷新机制,不明觉厉00:19:03
    6Activity销毁了Request也要取消,好吧,我也给你加上00:23:52
    7讲了这么多,做个小结吧00:23:20
    8光支持HttpClient有啥用,哥两种都支持的说(HttpUrlConnection)00:32:27
    做了那么久的开发,你一定遇到过HttpUrlConnection莫名奇妙的返回-1,而HttpClient下的多文件上传又TM好坑。
    9另外一种尝试,其实就爱瞎折腾啊喂00:46:48
    10服务器返回非200时的错误处理00:23:39
    第4章答疑
    1答疑可试听整节暂无回放
    2答疑暂无回放
    第5章----我是一条分割线----
    第6章最新v3版HTTP框架课程来了~
    第7章大不一样(GIT+AS+作业+互动)
    1HTTP课程介绍
    2新课程会怎么讲?
    第8章基础框架搭建
    1封装,从最简单的地方开始(免费试听)可试听整节00:15:07
    HttpUrlConnection应该怎么来封装
    2将HTTP请求切换到子线程(免费试听)可试听整节00:12:10
    3预处理服务器返回的数据(Json转对象)(免费试听)可试听整节00:13:34
    4基础框架搭建完毕00:12:32
    第9章功能扩展
    1文件下载实现00:09:23
    2下载进度更新00:13:20
    第10章请求中的异常处理
    1请求异常统一处理00:10:27
    2token过期需要重新登录如何统一处理?00:13:04
    3timeout重试机制00:13:11
    第11章取消请求
    1实现:取消HTTP请求00:16:55
    2测试:取消HTTP请求00:08:38
    3绑定Activity生命周期,被销毁时取消相关的HTTP Requests00:13:59
    第12章专属场景扩展
    1服务器返回的数据需要存数据库或再编辑等耗时操作00:09:46
    2List加载更多时,先加载数据库,没了再请求服务器00:12:08
    3队列使用场景(异步消息队列,同步队列,优先级队列)00:16:29
    4由于json过大导致gson反序列化OOM如何解决00:15:45
    5自拍要发朋友圈如何实现(多文件上传,进度更新)00:17:23
    第13章小结
    1代码review(免费试听)可试听整节00:12:09
    2学习前必看(免费试听)可试听整节00:07:55



    下载地址:
    游客,如果您要查看本帖隐藏内容请回复

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-9 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    7350

    帖子

    1万

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    19209
    发表于 2016-8-23 15:56:23 | 显示全部楼层
    我发现一天也离不开资源共享论坛了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-9 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    7350

    帖子

    1万

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    19209
    发表于 2016-8-25 10:43:19 | 显示全部楼层
    资源共享论坛就是棒!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-11-9 10:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    8

    主题

    4777

    帖子

    686

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    686
    发表于 2016-8-25 11:26:04 | 显示全部楼层
    资源共享论坛好多C语言的教程,不错的视频网!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-9 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    6190

    帖子

    314

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    314
    发表于 2016-8-25 10:51:47 | 显示全部楼层
    这么多易语言的教程,,,,,,,,,,,资源共享论坛真是个特别棒的视频教程网!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-10 21:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    5333

    帖子

    259

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    259
    发表于 2016-8-25 10:38:41 | 显示全部楼层
    资源共享论坛真是好,,,,,,,,,,,,,,,,,,,,,,竟然有独立团第九版脱机封包视频教程!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-10 21:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    5333

    帖子

    259

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    259
    发表于 2016-8-25 10:46:41 | 显示全部楼层
    大话2剑网3梦幻西游等游戏的脚本辅助视频
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-11-9 10:17
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    3

    主题

    4665

    帖子

    261

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    261
    发表于 2016-8-25 18:17:46 | 显示全部楼层
    谢谢分享,资源共享论坛真好!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-8-25 12:47
  • 签到天数: 7 天

    连续签到: 4 天

    [LV.3]偶尔看看II

    2

    主题

    7272

    帖子

    443

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    443
    发表于 2016-8-25 18:15:27 | 显示全部楼层
    资源共享论坛就是棒!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-8-25 12:47
  • 签到天数: 7 天

    连续签到: 4 天

    [LV.3]偶尔看看II

    2

    主题

    7272

    帖子

    443

    积分

    超级VIP

    Rank: 9Rank: 9Rank: 9

    积分
    443
    发表于 2016-8-25 18:13:41 | 显示全部楼层
    多谢资源共享论坛的分享!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|资源共享论坛 ( 苏ICP备16027914号   360网站安全检测平台

    GMT+8, 2018-11-14 22:23 , Processed in 0.175716 second(s), 36 queries .

    Powered by Discuz! X3.2 Licensed

    © 2016-2017

    快速回复 返回顶部 返回列表