一套包括网络请求、HUD/HUD点击取消请求api、get缓存、json转model解析的封装

LYNetworkRequestKit 是一款AFNetworking进行的二次封装的网络请求框架

  • 缓存策略,包括缓存时间、缓存更新机制等
  • 优先从网络还是缓存加载的设置,断网情况下自动从本地缓存请求
  • 网络请求的HUD,点击hud背景还可以取消某个api请求
  • 请求头httpHeader设置
  • 针对网络返回数据格式的设置、自定义字段
  • 网络请求回调可以自动解析成model或者modelArray,也会自动返回jsonData,只需要传入一个NSObject的类即可自动解析

1、基础使用方法:

[[ExamSubRequest shareInstance] requestGetJsonOperationWithParam:nil action:@"getDataList" showLoadHud:YES cancelEnable:YES normalResponse:^(NSInteger status, id  _Nonnull data) {
        //成功回调
    } exceptionResponse:^(NSError * _Nonnull error) {
        //失败回调
    }];

2、针对单个请求设置网络请求设置、

ExamSubRequest * request1 =  [ExamSubRequest shareInstance];
    request1.loadCacheFirst = YES;//允许优先从缓存加载
    request1.refreshCache = YES;//允许刷新当前缓存
    [request1 requestGetJsonOperationWithParam:nil action:@"getDataList"
                                   showLoadHud:YES cancelEnable:YES
                                normalResponse:^(NSInteger status, id  _Nonnull data) {
        
    } exceptionResponse:^(NSError * _Nonnull error) {
        
    }];

3、对某个请求类设置全局请求设置、

//允许优先从缓存加载
-(BOOL)loadCacheFirst
{
    return YES;
}
//允许刷新当前缓存
- (BOOL)refreshCache{
    return YES;
}

下面方法允许直接网络请求数据解析成对应model返回数据给逻辑层

  • get返回一个model
-(void)requestGetJsonModelWithParam:(NSDictionary *)param
                              action:(NSString *)action
                         showLoadHud:(BOOL)showHud
                        cancelEnable:(BOOL)cancelEnable
                          modelClass:(Class)modelClass
                      normalResponse:(void(^)(NSInteger status, id data, NSObject *model))normalResponse
                   exceptionResponse:(void(^)(NSError *error))exceptionResponse;
  • get返回model数组
-(void)requestGetJsonArrayWithParam:(NSDictionary *)param
                              action:(NSString *)action
                         showLoadHud:(BOOL)showHud
                        cancelEnable:(BOOL)cancelEnable
                          modelClass:(Class)modelClass
                      normalResponse:(void(^)(NSInteger status, id data, NSMutableArray *array))normalResponse
                   exceptionResponse:(void(^)(NSError *error))exceptionResponse;
  • post返回一个model
--(void)requestPostJsonModelWithParam:(NSDictionary *)param
                               action:(NSString *)action
                          showLoadHud:(BOOL)showHud
                         cancelEnable:(BOOL)cancelEnable
                           modelClass:(Class)modelClass
                       normalResponse:(void(^)(NSInteger status, id data, NSObject *model))normalResponse
                    exceptionResponse:(void(^)(NSError *error))exceptionResponse;
  • post返回model 数组
-(void)requestPostJsonArrayWithParam:(NSDictionary *)param
                               action:(NSString *)action
                          showLoadHud:(BOOL)showHud
                         cancelEnable:(BOOL)cancelEnable
                           modelClass:(Class)modelClass
                       normalResponse:(void(^)(NSInteger status, id data, NSMutableArray *array))normalResponse
                    exceptionResponse:(void(^)(NSError *error))exceptionResponse;

Github、欢迎star 或者issue

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,026评论 3 119
  • 关于星期的问题(标题: 世纪末的星期) 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人...
    王贵龗阅读 1,014评论 0 1
  • 头疼是最近出现频率很高的一个身体感受. 我想强调是真实的身体感受,而不只是一个说词,我会一边摸着额头一边跟老公说:...
    by_10阅读 135评论 0 0
  • 有伴的感觉多好,有伴的感觉真好 可是通常我是没什么伴的,我是孤独的却不想承认 我在图书室孤独,在酒吧孤独,写着也孤...
    玫瑰与小鹿lzt阅读 231评论 0 0