Thanks to visit codestin.com
Credit goes to github.com

Skip to content

CattleToCoaxStudio/CHNetWork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published