資料介紹
軟件簡介
基于AFNetworking3.0封裝網(wǎng)絡(luò)請求功能,API面向業(yè)務(wù)層更友好,基礎(chǔ)功能包括GET、POST、下載、單文件上傳、多文件上傳、取消網(wǎng)絡(luò)請求。此外還拓展出了緩存功能,緩存分為內(nèi)存緩存和磁盤緩存。
使用
將XDNetworking包拉進(jìn)工程
#import?"XDNetworking.h"
GET請求
/** ?*??GET請求 ?* ?*??@param?url??????????????請求路徑 ?*??@param?cache????????????是否緩存 ?*??@param?refresh??????????是否刷新請求(遇到重復(fù)請求,若為YES,則會(huì)取消舊的請求,用新的請求,若為NO,則忽略新請???求,用舊請求) ?*??@param?params???????????拼接參數(shù) ?*??@param?progressBlock????進(jìn)度回調(diào) ?*??@param?successBlock?????成功回調(diào) ?*??@param?failBlock????????失敗回調(diào) ?* ?*??@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???????????拼接參數(shù) ?*??@param?progressBlock????進(jìn)度回調(diào) ?*??@param?successBlock?????成功回調(diào) ?*??@param?failBlock????????失敗回調(diào) ?* ?*??@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?下載進(jìn)度 ?*??@param?successBlock??成功回調(diào) ?*??@param?failBlock?????下載回調(diào) ?* ?*??@return?返回的對象可取消請求 ?*/ +?(XDURLSessionTask?*)downloadWithUrl:(NSString?*)url ????????????????????????progressBlock:(XDDownloadProgress)progressBlock ?????????????????????????successBlock:(XDDownloadSuccessBlock)successBlock ????????????????????????????failBlock:(XDDownloadFailBlock)failBlock;
文件上傳
/** ?*??文件上傳 ?* ?*??@param?url??????????????上傳文件接口地址 ?*??@param?data?????????????上傳文件數(shù)據(jù) ?*??@param?type?????????????上傳文件類型 ?*??@param?name?????????????上傳文件服務(wù)器文件夾名 ?*??@param?mimeType?????????mimeType ?*??@param?progressBlock????上傳文件路徑 ?*??@param?successBlock?????成功回調(diào) ?*??@param?failBlock????????失敗回調(diào) ?* ?*??@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?????????數(shù)據(jù)集合 ?*??@param?type??????????類型 ?*??@param?name??????????服務(wù)器文件夾名 ?*??@param?mimeType??????mimeTypes ?*??@param?progressBlock?上傳進(jìn)度 ?*??@param?successBlock??成功回調(diào) ?*??@param?failBlock?????失敗回調(diào) ?* ?*??@return?任務(wù)集合 ?*/ +?(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;
取消所有網(wǎng)絡(luò)請求
+?(void)cancleAllRequest;
取消下載請求
+?(void)cancelRequestWithURL:(NSString?*)url;
獲取緩存大小
/** ?*??獲取緩存大小 ?* ?*??@return?緩存大小 ?*/ +?(unsigned?long?long)totalCacheSize;
清理緩存
/** ?*??清除所有緩存 ?*/ +?(void)clearTotalCache;
自動(dòng)清理緩存
????//每次網(wǎng)絡(luò)請求的時(shí)候,檢查此時(shí)磁盤中的緩存大小,如果超過閾值,則清理所有緩存 ????//未來優(yōu)化點(diǎn):1、這里到時(shí)會(huì)做進(jìn)一步優(yōu)化,到時(shí)會(huì)有兩種清理策略,一種基于時(shí)間維度,一種基于緩存大小, ????//??????????2、清理也不會(huì)清理全部,會(huì)采取LRU算法來淘汰在磁盤中價(jià)值最低的緩存 ????if?([self?totalCacheSize]?>?CACHEMAXSIZE)?[self?clearTotalCache];
獲取當(dāng)前正在運(yùn)行的任務(wù)
/** ?*??正在運(yùn)行的網(wǎng)絡(luò)任務(wù) ?* ?*??@return? ?*/ +?(NSArray?*)currentRunningTasks;
Usage Tip
1.?對于cache與否,到時(shí)大家針對自己的業(yè)務(wù)數(shù)據(jù)的特征來決定是否開啟cache,即時(shí)性或時(shí)效性的數(shù)據(jù)建議不開啟緩存,一般建議開啟,開啟緩存后會(huì)回調(diào)兩次,第一次獲取是緩存數(shù)據(jù),第二次獲取的是最新的網(wǎng)絡(luò)數(shù)據(jù);
2.?新版本多了一個(gè)刷新請求參數(shù),設(shè)置它是為了解決重復(fù)請求的問題,舉個(gè)例子,當(dāng)我們在列表里面上拉獲取更多數(shù)據(jù)的時(shí)候,有時(shí)候因?yàn)榫W(wǎng)絡(luò)慢,還沒有回調(diào)響應(yīng)刷新出數(shù)據(jù),這時(shí)候我們可能不斷去上拉列表,如果業(yè)務(wù)層不判斷,就會(huì)發(fā)起很多重復(fù)的請求。遇到重復(fù)請求,若參數(shù)設(shè)為YES,則會(huì)取消舊的請求,用新的請求,若設(shè)為NO,則忽略新請求,用舊請求。
3.?具體使用的時(shí)候,建議面向業(yè)務(wù)層再封裝一次Service層或者將網(wǎng)絡(luò)請求寫進(jìn)MVVM的viewModel中,向controller暴露只面向業(yè)務(wù)的參數(shù)。
Extension For Future
1.?為緩存添加相應(yīng)的緩存淘汰算法LRU;
2.?再封裝面向業(yè)務(wù)更友好的manager,管理業(yè)務(wù)層的API,使其方便在不同網(wǎng)絡(luò)環(huán)境下切換(測試環(huán)境與正式環(huán)境......)
- ChatGPT:AI模型框架研究 9次下載
- 基于boosting框架的混合秩矩陣分解模型 13次下載
- 基于情感評分的分層注意力網(wǎng)絡(luò)框架 5次下載
- 基于AADL的自主無人系統(tǒng)可成長框架綜述 3次下載
- 無線充電與可穿戴的系統(tǒng)框架及參考設(shè)計(jì)資料下載
- 基于時(shí)間卷積網(wǎng)絡(luò)的通用日志序列異常檢測框架 8次下載
- 一種基于框架特征的共指消解方法 7次下載
- 深入理解網(wǎng)絡(luò)編程框架詳細(xì)關(guān)系圖合集免費(fèi)下載 7次下載
- 網(wǎng)絡(luò)資源分配框架的軟件設(shè)計(jì)和應(yīng)用 10次下載
- AN1292與電機(jī)控制應(yīng)用程序框架對比 2次下載
- 基于攻擊事件的動(dòng)態(tài)網(wǎng)絡(luò)風(fēng)險(xiǎn)評估框架 0次下載
- 基于CPS的智能控制生產(chǎn)線框架網(wǎng)絡(luò)化設(shè)計(jì) 13次下載
- 新的AdHoc網(wǎng)絡(luò)QoS源路由框架 32次下載
- 一種新的Ad Hoc網(wǎng)絡(luò)QoS框架
- 基于網(wǎng)絡(luò)搜索引擎的網(wǎng)絡(luò)話題分析框架
- 傳感器抽象框架有哪些 1.4k次閱讀
- 高性能網(wǎng)絡(luò)框架之XDP技術(shù)解析 6.2k次閱讀
- 長短距離循環(huán)更新(LRRU)網(wǎng)絡(luò)的輕量級深度網(wǎng)絡(luò)框架介紹 2.1k次閱讀
- qiling框架和AFLplusplus安裝 3.2k次閱讀
- 簡化網(wǎng)絡(luò)自動(dòng)化任務(wù)編排框架Nornir的用法 3.4k次閱讀
- 基于SSM框架的新聞管理系統(tǒng) 2.2k次閱讀
- JustWeEngine游戲框架網(wǎng)絡(luò)事件處理 Http服務(wù)器的數(shù)據(jù)交換 2.3k次閱讀
- 詳解Netty高性能異步事件驅(qū)動(dòng)的網(wǎng)絡(luò)框架 2.6k次閱讀
- 基于TensorFlow框架搭建卷積神經(jīng)網(wǎng)絡(luò)的電池片缺陷識別研究 8.4k次閱讀
- 深度學(xué)習(xí)框架你了解多少 2.5k次閱讀
- 你知道輕量級神經(jīng)網(wǎng)絡(luò)可視化的通用框架么? 4.6k次閱讀
- 嵌入式應(yīng)用框架EAF詳解 3.4k次閱讀
- TensorFlow的框架結(jié)構(gòu)解析 7.4k次閱讀
- 什么是Hibernate?Hibernate框架架構(gòu)與框架原理分析 5.6k次閱讀
- OMCS網(wǎng)絡(luò)語音視頻聊天框架功能及技術(shù)分析 2.9k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測量模擬前端芯片技術(shù)手冊
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論