如何自己写HTTP框架(制造轮子系列)

随着安卓的发展和各大神的贡献,我们可以使用越来越多的轮子。比如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. 不要直接切换到最新的节点。你需要感受到代码从0到1的过程,TODO、实现、优化甚至重构是本质。
3. 课程中可能遇到的问题也可能是其他学生的问题。请在讨论区提问,Stay会统一回复,这样Stay就会有更多的精力设计其他高质量的课程。
4. 课程中的代码都是Stay手敲的,但不建议你用视频复制。看完一节课或者一整节课后,一定要用自己的方式去实现。代码只是用来参考的。
5. Stay注重思维,轻编码。我想传达的是思维方式,与我敲的代码和我的陈述步骤无关。
 
 
 
课程目录:
 
第一章V3版重制课程上线,请从第七章开始~
1HTTP框架介绍(不收费)可以听整个00:23:34
第二章基本框架建设(不甜不要钱)
1你也可以这样写HTTPClient(不收费):24:32
就这样搭建了基本框架,你敢相信吗?(不收费)可以试听整个00:36:55
第三章框架扩展
我想要的是对象,而不是你的json字符串00:30:24
还在手写javabean,手写分析json协议?真低。浪费时间说。三分钟创建javabean,调通API获取对象。不,你打我。
220行代码支持下载进度更新,我说的是真的!00:16:13
立即取消HTTP请求是骗你的,这里有延迟。00:23:07
4timeout自动重连有多难?5分钟就能完成00:13:59
5缓存刷新机制,未知觉厉00:19:03
6Activity销毁Request也将被取消,好吧,我也会给你加000:23:52
7.说了这么多,做个总结。00:23:20
8光支持Httpclient有什么用?兄弟俩都支持。(HttpUrlConnection)00:32:27
经过这么长时间的开发,你一定遇到过Httpurlconection莫名其妙的返回-1,而Httpclient下的多个文件上传是TM的好坑。
9另一种尝试,其实就是爱瞎折腾,喂00:46:48
10服务器返回非200时错误处理00:23:39
第4章答疑
答疑可听,整个节目暂时没有回放
2答疑暂无回放
第5章
HTTP框架课程的最新版本6章即将到来~
第七章大不相同(GIT+AS+作业+互动)
介绍1HTTP课程
2新课程会怎么讲?
第八章建立基本框架
1包装,从最简单的地方(免费试听)可以试听整个00:15:07
如何封装HttpUrlConnection?
2将HTTP请求切换到子线程(免费试听),可以试听整个部分00:12:10
3.预处理服务器返回的数据(Json转移对象)(免费试听)可以试听整个部分00:13:34
4.构建完基础框架后,000:12:32
第九章功能扩展
文件下载实现00:09:23
2下载进度更新00:13:20
第十章请求中的异常处理
1.请求异常统一处理:10:27
如何统一处理2token过期需要重新登录?00:13:04
3timeout重试机制000:13:11
第一章取消请求
实现:取消HTTP请求000:16:55
2.亲自测试后,取消HTTP请求00:08:38
3绑定Activity生命周期,取消相关HTTP Requests0000:13:59
第十二章专属场景扩展
1服务器返回的数据需要存储数据库或重新编辑和其他耗时的操作:09:46
2List加载更多时,先加载数据库,然后请求服务器00:12:08
3队列使用场景(异步消息队列,同步队列,优先队列)00:16:29
4如何解决json过大导致gson反序列OOM的000问题?:15:45
5如何实现自拍发送朋友圈(多文件上传,进度更新)00:17:23
第13章小结
1代码review
2学习前必看

[我要扒资料]

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。