講座

如何自己動手寫HTTP框架(造輪子系列34講)

 如何自己動手寫HTTP框架(造輪子系列)

隨著Android的發(fā)展,各路大神的貢獻,我們可用的輪子越來越多。比如HTTP請求框架,有自家的Volley,Square的okhttp, async-http-lib, 還有聚合版的xUtils以及AFinal。我想你肯定用過其中一個。
我們當然不是要來剖析科普這些第三方的網絡請求框架,而是嘗試自己造輪子。通過造輪子,感受從0到1的過程,希望能讓大家學會舉一反三,在自己的工作中多去思考。
Stay版的HTTP框架比較接地氣,在純粹的HTTP請求之上增加了不少擴展,而這些擴展又是我們工作中經常會碰到的問題。 
 
比如說:
1. 其他lib返回的服務器數(shù)據格式比較少(File, String, JSONObject, JSONArray), 但在我們的框架里只需要聲明泛型T,你就能得到想要的Object。你再也不需要手寫JSON解析
2. 我們的API請求中,常常會返回一些全局異常,比如TOKEN EXPIRED,賬號在其他設備登錄。這時,不管在哪個activity,我們都需要重新登錄。在我們的框架里提供了全局異常解析,你只需要filter該異常,而不需要在每個onFailure回調中判斷處理。
3. 服務器返回的數(shù)據可能需要保存至數(shù)據庫或排序等耗時操作,在我們的框架中會通過回調的方式,將反序列化的Object再包裝一層返回給上層。這樣我們不需要再另開線程,也不用擔心ANR。
 
像這樣的擴展還有很多,當你學完本課程,你會找到更多的擴展點,去根據自己的產品來定制網絡請求框架。你也再不用害怕看不懂|改不了這樣的第三方框架。其他功能點Stay不再贅述,你可以通過觀看免費試聽課或者查看課程目錄詳情來了解。
 
課程學習tips:
1. 部分課時會有作業(yè)思考題,多思考多演練,這樣才會有提升。
2. 每個git上的commit對應課程上的一個課時,請勿直接切換到最新節(jié)點,你需要感受的是代碼從0到1的過程,期間的TODO,實現(xiàn),優(yōu)化甚至重構才是精華。
3. 課程中可能遇到的問題也可能是其他同學的問題,請在討論區(qū)中提問,Stay會統(tǒng)一回復,這樣Stay會有更多的精力來設計其他優(yōu)質課程。
4. 課程中的代碼均為Stay手敲,但不推薦大家跟著視頻照抄,務必一節(jié)課時或一整期課程看完后用自己的方式來實現(xiàn)。代碼只是用來借鑒。
5. Stay重思維,輕編碼。我希望傳遞的是思維方法,與我敲的代碼無關,與我的陳述步驟無關。
 
 
 
課程目錄:
 
第1章V3版重制課程上線,請從第七章開始看~
1Http框架介紹(不收費)可試聽整節(jié)00:23:34
第2章基礎框架搭建(不甜不要錢)
1你造HTTPClient還可以這么寫不(不收費)可試聽整節(jié)00:24:32
2基礎框架就這么搭好了,你敢信?(不收費)可試聽整節(jié)00:36:55
第3章框架擴展
1我要的是對象,不是你丫json字符串00:30:24
還在對著json協(xié)議手寫javabean,手動寫解析?真low。浪費時間的說。三分鐘創(chuàng)建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
做了那么久的開發(fā),你一定遇到過HttpUrlConnection莫名奇妙的返回-1,而HttpClient下的多文件上傳又TM好坑。
9另外一種嘗試,其實就愛瞎折騰啊喂00:46:48
10服務器返回非200時的錯誤處理00:23:39
第4章答疑
1答疑可試聽整節(jié)暫無回放
2答疑暫無回放
第5章
第6章最新v3版HTTP框架課程來了~
第7章大不一樣(GIT+AS+作業(yè)+互動)
1HTTP課程介紹
2新課程會怎么講?
第8章基礎框架搭建
1封裝,從最簡單的地方開始(免費試聽)可試聽整節(jié)00:15:07
HttpUrlConnection應該怎么來封裝
2將HTTP請求切換到子線程(免費試聽)可試聽整節(jié)00:12:10
3預處理服務器返回的數(shù)據(Json轉對象)(免費試聽)可試聽整節(jié)00:13:34
4基礎框架搭建完畢00:12:32
第9章功能擴展
1文件下載實現(xiàn)00:09:23
2下載進度更新00:13:20
第10章請求中的異常處理
1請求異常統(tǒng)一處理00:10:27
2token過期需要重新登錄如何統(tǒng)一處理?00:13:04
3timeout重試機制00:13:11
第11章取消請求
1實現(xiàn):取消HTTP請求00:16:55
2測試:取消HTTP請求00:08:38
3綁定Activity生命周期,被銷毀時取消相關的HTTP Requests00:13:59
第12章專屬場景擴展
1服務器返回的數(shù)據需要存數(shù)據庫或再編輯等耗時操作00:09:46
2List加載更多時,先加載數(shù)據庫,沒了再請求服務器00:12:08
3隊列使用場景(異步消息隊列,同步隊列,優(yōu)先級隊列)00:16:29
4由于json過大導致gson反序列化OOM如何解決00:15:45
5自拍要發(fā)朋友圈如何實現(xiàn)(多文件上傳,進度更新)00:17:23
第13章小結
1代碼review
2學習前必看

158資源整合網:提供各類學習資源,名師講座視頻,培訓課程視頻,音頻,文檔等···各類教程下載觀看。

  • 大。2.73 GB
  • 百度網盤觀看下載
  • 點數(shù):15 點數(shù)
  • 咨詢QQ:1686059668
好消息:為了回饋廣大用戶能學習更多知識。
現(xiàn)只需98開通終身VIP會員
就可以終身免費下載所有資源!
機會難得 錯過就沒有了
【 點我咨詢,開通免費下載!】
提示:在電腦上打開本站 yuandun520.cn 下載更方便。