自定义网络请求框架
該網絡請求框架是基于okhttp封裝的項目。支持設置請求配置。
- okhttp的Cache類支持配置緩存的大小于位置。
- okhttp支持設置鏈接超時,讀取超時,寫入超時。
- okhttp支持設置cookie。
- okhttp支持設置請求攔截器,我們通過自定義重試攔截器設置請求失敗重試。根據請求返回的響應體的狀態和重試次數,決定是否重試。
- okhttp支持設置請求攔截器,我們通過自定義日志攔截器實現請求日志的打印。包括請求方法,請求地址,請求協議,請求體長度,請求頭信息,請求體信息。響應碼,響應信息,響應地址,響應時間,響應頭,響應體信息。
- 將網速變化情況根據每秒傳輸的字節數進行監聽,從而判斷網絡狀況。通過系統提供的TrafficStats類進行判斷,它能夠獲取手機開機之后接手的網絡字節數。在請求前和請求后進行相減即可得到此次的請求字節。進而判斷網絡好壞。如果不支持,則獲取本地請求的響應體的字節數。
- okhttp支持網絡攔截器。
- okhttp支持CallAdapter。添加調用適配器工廠以支持除Call之外的服務方法返回類型。
- okhttp支持Converter。添加轉換器工廠以進行對象的序列化和反序列化。
- okhttp支持Call。指定用于創建Call實例的自定義call工廠。
提供一個門面類讓客戶端進行設置。
- 通過傳入不同的服務器地址,返回不同的Retrofit實例。
- 提供了REST API,包含上傳和下載文件的接口給客戶端。并提供回調。
門面類持有真正進行網絡請求的管理類。
- 通過單例模式進行網絡請求。管理類內部通過Retrofit使用自定義的okhttp進行網絡請求。Retrofit的服務接口里面實現了REST API和上傳,下載的接口定義。需要傳入服務器地址和對應參數。
- 所有的請求對象都是異步調用,并在請求的開始,獲得響應,結束的地方設置傳入的自定義回調函數。
- 在請求之前會從數據庫加載已有的緩存信息,并判斷需要從服務器請求嗎,可以設置每次都從服務器拉去信息。有些緩存信息中包含了信息的有效緩存時間,要是超出緩存期限會促發網絡請求。網絡請求回來后會會在開辟的IO線程中將數據保存在數據庫,氛圍新增和更新。更新完畢后,從數據庫讀取最新消息,通過切換線程將請求結果發送到主線程。
轉載于:https://juejin.im/post/5ccffe30e51d453aa10dff3a
總結
- 上一篇: 持续集成工具jenkins的部署--Wi
- 下一篇: 5.6 前端开发日报