KJNetworkPluginManager 插件版网络请求库开源项目

我要开发同款
匿名用户2022年01月04日
44阅读
所属分类Objective-C、iOS代码库、网络(Networking)
授权协议MIT

作品详情

KJNetworkPlugin 是一款基于面向协议的网络抽象层的插件版网络请求库,基于AFNetworking的基础上再次封装使用。

熟悉swift的朋友应该都知道一款优秀的三方库Moya,插件版网络请求是真香,于是乎借鉴思路制作一款纯oc版本的插件网络请求库熟悉oc的朋友又应该都知道一款优秀的三方库YTKNetwork,基于对象的协议版网络请求,然后他的批量网络请求和链式网络请求也超级香结合一下两者优点,制作一款批量和链式插件版网络请求库目前整理九款插件:解析插件,缓存插件,配置自建证书插件,加载提示插件,修改请求插件,日志抓包插件,错误码插件,刷新插件,网络错误和空数据插件功能清单插件版网络请求可以更方便快捷的定制专属网络请求,并且支持批量操作,链式操作

主要功能清单如下:

支持基本的网络请求,下载上传文件支持配置通用请求跟路径,通用参数等支持设置加载和提示框插件支持解析结果插件支持网络缓存插件支持配置自建证书插件支持修改请求体和获取响应结果插件支持网络日志抓包插件支持刷新加载更多插件支持错误码解析插件支持错误和空数据UI展示插件支持批量操作支持链式网络请求使用教程基本使用教程插件使用教程批量网络使用教程链式网络使用教程模块组成简单讲应该分为这么几大板块:

Chain:链式插件版网络请求Batch:批量插件版网络请求Network:插件管理器和网络请求基类Plugins:插件集合,目前已有5款插件供使用 -Loading:加载错误提示插件 -Anslysis:数据解析插件 -Cache:缓存插件 -Certificate:自建证书插件 -Thief:修改器插件 -Capture:网络日志抓包插件 -Code:错误码插件 -Refresh:刷新插件 -Empty:网络错误和空数据UI插件Network版块KJBaseNetworking:网络请求基类,基于AFNetworking封装使用这里也提供两个入口,设置通用的根路径和通用参数,类似:userID,token等///根路径地址@property(nonatomic,strong,class)NSString*baseURL;///基本参数,类似:userID,token等@property(nonatomic,strong,class)NSDictionary*baseParameters;封装的有基本的网络请求,上传下载文件等方法KJNetworkingRequest:请求体,设置网络请求相关参数,其中包含参数,请求方式,插件等等KJNetworkingResponse:响应请求结果,获取插件之间产生的数据等等KJNetworkingType:汇总所有枚举和回调声明KJNetworkBasePlugin:插件基类,插件父类KJNetworkPluginManager:插件管理器,中枢神经///插件版网络请求///@paramrequest请求体///@paramsuccess成功回调///@paramfailure失败回调+(void)HTTPPluginRequest:(KJNetworkingRequest*)requestsuccess:(KJNetworkPluginSuccess)successfailure:(KJNetworkPluginFailure)failure;目前抽离出以下5条协议方法,其中大致分为开始时刻、网络请求时刻、网络成功、网络失败、最终返回///开始准备网络请求///@paramrequest请求相关数据///@paramendRequest是否结束下面的网络请求///@return返回准备插件处理后的数据-(KJNetworkingResponse*)prepareWithRequest:(KJNetworkingRequest*)requestendRequest:(BOOL*)endRequest;///网络请求开始时刻请求///@paramrequest请求相关数据///@paramstopRequest是否停止网络请求///@return返回网络请求开始时刻插件处理后的数据-(KJNetworkingResponse*)willSendWithRequest:(KJNetworkingRequest*)requeststopRequest:(BOOL*)stopRequest;///成功接收数据///@paramrequest请求相关数据///@paramagainRequest是否需要再次请求该网络///@return返回成功插件处理后的数据-(KJNetworkingResponse*)succeedWithRequest:(KJNetworkingRequest*)requestagainRequest:(BOOL*)againRequest;///失败处理///@paramrequest请求相关数据///@paramagainRequest是否需要再次请求该网络///@return返回失败插件处理后的数据-(KJNetworkingResponse*)failureWithRequest:(KJNetworkingRequest*)requestagainRequest:(BOOL*)againRequest;///准备返回给业务逻辑时刻调用///@paramrequest请求相关数据///@paramerror错误信息///@return返回最终加工之后的数据-(KJNetworkingResponse*)processSuccessResponseWithRequest:(KJNetworkingRequest*)requesterror:(NSError**)error;Plugins插件集合插件使用教程目前已有9款插件供使用:

KJNetworkLoadingPlugin:基于MBProgressHUD封装的加载框和错误提示框插件

KJNetworkAnslysisPlugin:基于MJExtension封装的解析数据插件

KJNetworkCachePlugin:基于YYCache封装的网络缓存插件

KJNetworkCertificatePlugin:配置自建证书插件

KJNetworkThiefPlugin:修改KJNetworkingRequest和获取KJNetworkingResponse插件

KJNetworkCapturePlugin:网络日志抓包插件

KJNetworkCodePlugin:错误码解析插件

KJNetworkRefreshPlugin:刷新加载更多插件

KJNetworkEmptyPlugin:错误信息和空数据UI展示插件

Chain链式插件网络链式网络使用教程Batch批量插件网络批量网络使用教程关于作者
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论