电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>XDNetworking基于AFNetworking网络框架

XDNetworking基于AFNetworking网络框架

2022-06-24 | zip | 0.24 MB | 次下载 | 2积分

资料介绍

授权协议 MIT
开发语言 Objective-C
软件类型 开源软件
所属分类 iOS代码库网络(Networking)

软件简介

基于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,使其方便在不同网络环境下切换(测试环境与正式环境......)

?

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费