資料介紹
軟件簡介
基于AFNetworking3.0封裝網絡請求功能,API面向業務層更友好,基礎功能包括GET、POST、下載、單文件上傳、多文件上傳、取消網絡請求。此外還拓展出了緩存功能,緩存分為內存緩存和磁盤緩存。
使用
將XDNetworking包拉進工程
#import?"XDNetworking.h"
GET請求
/** ?*??GET請求 ?* ?*??@param?url??????????????請求路徑 ?*??@param?cache????????????是否緩存 ?*??@param?refresh??????????是否刷新請求(遇到重復請求,若為YES,則會取消舊的請求,用新的請求,若為NO,則忽略新請???求,用舊請求) ?*??@param?params???????????拼接參數 ?*??@param?progressBlock????進度回調 ?*??@param?successBlock?????成功回調 ?*??@param?failBlock????????失敗回調 ?* ?*??@return?返回的對象中可取消請求 ?*/ +?(XDURLSessionTask?*)getWithUrl:(NSString?*)url ??????????????????refreshRequest:(BOOL)refresh ???????????????????????????cache:(BOOL)cache ??????????????????????????params:(NSDictionary?*)params ???????????????????progressBlock:(XDGetProgress)progressBlock ????????????????????successBlock:(XDResponseSuccessBlock)successBlock ???????????????????????failBlock:(XDResponseFailBlock)failBlock;
POST請求
/** ?*??POST請求 ?* ?*??@param?url??????????????請求路徑 ?*??@param?cache????????????是否緩存 ?*??@param?refresh??????????解釋同上 ?*??@param?params???????????拼接參數 ?*??@param?progressBlock????進度回調 ?*??@param?successBlock?????成功回調 ?*??@param?failBlock????????失敗回調 ?* ?*??@return?返回的對象中可取消請求 ?*/ +?(XDURLSessionTask?*)postWithUrl:(NSString?*)url ???????????????????refreshRequest:(BOOL)refresh ????????????????????????????cache:(BOOL)cache ???????????????????????????params:(NSDictionary?*)params ????????????????????progressBlock:(XDPostProgress)progressBlock ?????????????????????successBlock:(XDResponseSuccessBlock)successBlock ????????????????????????failBlock:(XDResponseFailBlock)failBlock;
下載請求
/** ?*??文件下載 ?* ?*??@param?url???????????下載文件接口地址 ?*??@param?progressBlock?下載進度 ?*??@param?successBlock??成功回調 ?*??@param?failBlock?????下載回調 ?* ?*??@return?返回的對象可取消請求 ?*/ +?(XDURLSessionTask?*)downloadWithUrl:(NSString?*)url ????????????????????????progressBlock:(XDDownloadProgress)progressBlock ?????????????????????????successBlock:(XDDownloadSuccessBlock)successBlock ????????????????????????????failBlock:(XDDownloadFailBlock)failBlock;
文件上傳
/** ?*??文件上傳 ?* ?*??@param?url??????????????上傳文件接口地址 ?*??@param?data?????????????上傳文件數據 ?*??@param?type?????????????上傳文件類型 ?*??@param?name?????????????上傳文件服務器文件夾名 ?*??@param?mimeType?????????mimeType ?*??@param?progressBlock????上傳文件路徑 ?*??@param?successBlock?????成功回調 ?*??@param?failBlock????????失敗回調 ?* ?*??@return?返回的對象中可取消請求 ?*/ +?(XDURLSessionTask?*)uploadFileWithUrl:(NSString?*)url ????????????????????????????????fileData:(NSData?*)data ????????????????????????????????????type:(NSString?*)type ????????????????????????????????????name:(NSString?*)name ????????????????????????????????mimeType:(NSString?*)mimeType ???????????????????????????progressBlock:(XDUploadProgressBlock)progressBlock ????????????????????????????successBlock:(XDResponseSuccessBlock)successBlock ???????????????????????????????failBlock:(XDResponseFailBlock)failBlock;
多文件上傳
/** ?*??多文件上傳 ?* ?*??@param?url???????????上傳文件地址 ?*??@param?datas?????????數據集合 ?*??@param?type??????????類型 ?*??@param?name??????????服務器文件夾名 ?*??@param?mimeType??????mimeTypes ?*??@param?progressBlock?上傳進度 ?*??@param?successBlock??成功回調 ?*??@param?failBlock?????失敗回調 ?* ?*??@return?任務集合 ?*/ +?(NSArray?*)uploadMultFileWithUrl:(NSString?*)url ?????????????????????????fileDatas:(NSArray?*)datas ??????????????????????????????type:(NSString?*)type ??????????????????????????????name:(NSString?*)name ??????????????????????????mimeType:(NSString?*)mimeTypes ?????????????????????progressBlock:(XDUploadProgressBlock)progressBlock ??????????????????????successBlock:(XDMultUploadSuccessBlock)successBlock ?????????????????????????failBlock:(XDMultUploadFailBlock)failBlock;
取消所有網絡請求
+?(void)cancleAllRequest;
取消下載請求
+?(void)cancelRequestWithURL:(NSString?*)url;
獲取緩存大小
/** ?*??獲取緩存大小 ?* ?*??@return?緩存大小 ?*/ +?(unsigned?long?long)totalCacheSize;
清理緩存
/** ?*??清除所有緩存 ?*/ +?(void)clearTotalCache;
自動清理緩存
????//每次網絡請求的時候,檢查此時磁盤中的緩存大小,如果超過閾值,則清理所有緩存 ????//未來優化點:1、這里到時會做進一步優化,到時會有兩種清理策略,一種基于時間維度,一種基于緩存大小, ????//??????????2、清理也不會清理全部,會采取LRU算法來淘汰在磁盤中價值最低的緩存 ????if?([self?totalCacheSize]?>?CACHEMAXSIZE)?[self?clearTotalCache];
獲取當前正在運行的任務
/** ?*??正在運行的網絡任務 ?* ?*??@return? ?*/ +?(NSArray?*)currentRunningTasks;
Usage Tip
1.?對于cache與否,到時大家針對自己的業務數據的特征來決定是否開啟cache,即時性或時效性的數據建議不開啟緩存,一般建議開啟,開啟緩存后會回調兩次,第一次獲取是緩存數據,第二次獲取的是最新的網絡數據;
2.?新版本多了一個刷新請求參數,設置它是為了解決重復請求的問題,舉個例子,當我們在列表里面上拉獲取更多數據的時候,有時候因為網絡慢,還沒有回調響應刷新出數據,這時候我們可能不斷去上拉列表,如果業務層不判斷,就會發起很多重復的請求。遇到重復請求,若參數設為YES,則會取消舊的請求,用新的請求,若設為NO,則忽略新請求,用舊請求。
3.?具體使用的時候,建議面向業務層再封裝一次Service層或者將網絡請求寫進MVVM的viewModel中,向controller暴露只面向業務的參數。
Extension For Future
1.?為緩存添加相應的緩存淘汰算法LRU;
2.?再封裝面向業務更友好的manager,管理業務層的API,使其方便在不同網絡環境下切換(測試環境與正式環境......)
- ChatGPT:AI模型框架研究 1次下載
- 基于boosting框架的混合秩矩陣分解模型 13次下載
- 基于情感評分的分層注意力網絡框架 5次下載
- 基于AADL的自主無人系統可成長框架綜述 3次下載
- 無線充電與可穿戴的系統框架及參考設計資料下載
- 基于時間卷積網絡的通用日志序列異常檢測框架 8次下載
- 一種基于框架特征的共指消解方法 7次下載
- 深入理解網絡編程框架詳細關系圖合集免費下載 7次下載
- 網絡資源分配框架的軟件設計和應用 10次下載
- AN1292與電機控制應用程序框架對比 2次下載
- 基于攻擊事件的動態網絡風險評估框架 0次下載
- 基于CPS的智能控制生產線框架網絡化設計 13次下載
- 新的AdHoc網絡QoS源路由框架 32次下載
- 一種新的Ad Hoc網絡QoS框架
- 基于網絡搜索引擎的網絡話題分析框架
- 傳感器抽象框架有哪些 452次閱讀
- 高性能網絡框架之XDP技術解析 3206次閱讀
- 長短距離循環更新(LRRU)網絡的輕量級深度網絡框架介紹 787次閱讀
- qiling框架和AFLplusplus安裝 1667次閱讀
- 簡化網絡自動化任務編排框架Nornir的用法 1932次閱讀
- 基于SSM框架的新聞管理系統 1120次閱讀
- JustWeEngine游戲框架網絡事件處理 Http服務器的數據交換 1632次閱讀
- 詳解Netty高性能異步事件驅動的網絡框架 1707次閱讀
- 基于TensorFlow框架搭建卷積神經網絡的電池片缺陷識別研究 7617次閱讀
- 深度學習框架你了解多少 2164次閱讀
- 你知道輕量級神經網絡可視化的通用框架么? 3418次閱讀
- 嵌入式應用框架EAF詳解 2700次閱讀
- TensorFlow的框架結構解析 7032次閱讀
- 什么是Hibernate?Hibernate框架架構與框架原理分析 5234次閱讀
- OMCS網絡語音視頻聊天框架功能及技術分析 2560次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多