资料介绍
软件简介
基于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模型框架研究 9次下载
- 基于boosting框架的混合秩矩阵分解模型 13次下载
- 基于情感评分的分层注意力网络框架 5次下载
- 基于AADL的自主无人系统可成长框架综述 3次下载
- 无线充电与可穿戴的系统框架及参考设计资料下载
- 基于时间卷积网络的通用日志序列异常检测框架 8次下载
- 一种基于框架特征的共指消解方法 7次下载
- 深入理解网络编程框架详细关系图合集免费下载 7次下载
- 网络资源分配框架的软件设计和应用 10次下载
- AN1292与电机控制应用程序框架对比 2次下载
- 基于攻击事件的动态网络风险评估框架 0次下载
- 基于CPS的智能控制生产线框架网络化设计 13次下载
- 新的AdHoc网络QoS源路由框架 32次下载
- 一种新的Ad Hoc网络QoS框架
- 基于网络搜索引擎的网络话题分析框架
- 高性能网络框架之XDP技术解析 3916次阅读
- 长短距离循环更新(LRRU)网络的轻量级深度网络框架介绍 1084次阅读
- qiling框架和AFLplusplus安装 2040次阅读
- 简化网络自动化任务编排框架Nornir的用法 2268次阅读
- 基于SSM框架的新闻管理系统 1385次阅读
- JustWeEngine游戏框架网络事件处理 Http服务器的数据交换 1731次阅读
- 详解Netty高性能异步事件驱动的网络框架 1871次阅读
- 基于TensorFlow框架搭建卷积神经网络的电池片缺陷识别研究 7802次阅读
- 深度学习框架你了解多少 2223次阅读
- 你知道轻量级神经网络可视化的通用框架么? 3584次阅读
- PerferredNetworks发布了其超参数优化框架的beta版本 3122次阅读
- 嵌入式应用框架EAF详解 2892次阅读
- TensorFlow的框架结构解析 7124次阅读
- 什么是Hibernate?Hibernate框架架构与框架原理分析 5313次阅读
- OMCS网络语音视频聊天框架功能及技术分析 2633次阅读
下载排行
本周
- 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次下载 | 免费
评论