CHNetWork 0.0.9

CHNetWork 0.0.9

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Mar 2018

Maintained by NULL, cfb.



 
Depends on:
AFNetworking>= 0
FMDB>= 0
MJExtension>= 0
 

CHNetWork 0.0.9

  • By
  • chengyou.yang

CHNetWork

CI Status Version License Platform

CHNetwork提供的功能

CHNetwork是基于AFNetworking二次封装的,CHNetwork提供了以下功能:

  • 支持按时间缓存网络请求内容

    设置缓存时间 单位秒(s),加到appdelegate里面:
    [CHNetworkingConfig shardInstance].cacheTime = 1800;不设置默认是1800秒
    
  • 支持设置httpRequest header

    在请求头里加入token:
    [[CHNetworkingConfig shardInstance] httpRequestSetValue:@"token" forHTTPHeaderField:@"token"];
    
  • 暂只支持delegate回调的方式

    block方式:对于小型项目逻辑不复杂 控制器调用接口只有一个时 更直观更方便(需要注意循环引用的问题)
    delegate:对于逻辑比较复杂 在一个控制器调用多次接口和需要对同一状态做处理时 让数据走同一方法返回,更增强代码可读性和可维护性(不用处理循环引用的问题)
    
  • 支持网络状态判断(在网络请求失败的情况,可以根据返回状态提示用户)

  • 支持在统一的方法里设置loading页面(如果不实现该方法将加载默认loading页面)

    回调方法如下:
    
    配置请求参数
    -(NSDictionary *)ch_paramWith:(CHNetWorking *)manager;
    请求成功回调
    -(void)ch_requestCallAPISuccess:(CHNetWorking *)manager;
        manager.response.content 获取服务器返回内容
        manager.model  转换后的模型
    失败请求回调
    -(void)ch_requestCallApiFail:(CHNetWorking *)manager;
        manager.response.status 根据此状态(枚举)提示用户
    
    下面两个代理可以不实现,将使用该库默认的提示样式。可以在你的BaseViewController实现这两个方法,加入自定义样式。如果不要加载提示,提供了两个只有方法的宏定义  
    CHNetworkingStart  
    CHNetworkingEnd
    
    开始请求回调
    - (void)ch_startAccessTheNetwork:(CHNetWorking *)manager;
    结束请求回调
    - (void)ch_endAccessTheNetwork:(CHNetWorking *)manager;
    
  • 支持模型转换(传入class返回对应的模型) 使用如下:

    这里模型转换对服务器返回格式有要求,如:
    {
        msg:@"这是服务器返回的提示信息",
        data:@{}/@[]/@"",
        status:@"返回的状态码"
    }
    
    在CHNetWorking类里,在成功拿到数据后,取的data字段进行模型转换。
    如果data是数组:传入的模型是它里面的对象模型,返回的就是一个该模型的数组
    其中@"data"字段可在CHNetworkingConfig文件配置
    [CHNetWorking ch_GetRequestWithDeleagteTarget:self andRequestType:CHAPIManagerRequestTypeGet andClass:[CoreObject_PostsTip class] andIsPersistence:NO andNumber:1];
    
  • 支持对get请求参数编码

Example

发起网络请求
[CHNetWorking ch_GetRequestWithDeleagteTarget:self andRequestType:CHAPIManagerRequestTypeGet andClass:[CoreObject_PostsTip class] andIsPersistence:NO andNumber:1];

/**
网络请求 参数配置代理

@param manager manager
@return 参数配置回调方法
*/
- (NSDictionary *)ch_paramWith:(CHNetWorking *)manager{

if (manager.requestNumber == 1) {
    //获取首页数据
    return @{@"url":LoadTipList,@"params":@{@"appId":DEVICEUUID,@"page":StringValue(_startIndex),@"rows":StringValue(_pageSize)}};
}else if (manager.requestNumber == 2){
    //更新读取状态
    return @{@"url":UpdateReadStatu,@"params":@{@"tipId":_tipId}};
}
    return nil;
}

/**
网络请求成功回调

@param manager manager
*/
- (void)ch_requestCallAPISuccess:(CHNetWorking *)manager{

    if ([manager.response.content[@"status"] intValue] != 1) {
        [XHToast showCenterWithText:manager.response.content[@"msg"]];
    }else{
        if (manager.requestNumber == 1) {
            
        }else if(manager.requestNumber == 2){
            
        }
        //往数据源添加模型数组
        [_dataSource addObjectsFromArray:manager.model];
        [self.tableView reloadData];
    }
}


/**
网络请求失败回调

@param manager manager
*/
- (void)ch_requestCallApiFail:(CHNetWorking *)manager{
    //此处可以根据状态提示
    [XHToast showBottomWithText:@"网络错误!"];
}

//网络请求 开始和结束回调
CHNetworkingStart  
CHNetworkingEnd

Requirements

ios8+

Installation

CHNetWork is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'CHNetWork'

Author

chengyou.yang, [email protected]

License

CHNetWork is available under the MIT license. See the LICENSE file for more info.