前言
以前的框架是为了在网络请求完成后立即将JSON转换为所需的model,但为了新的路由组件化框架,降低耦合,所以移除了Model这一环,这是重构后的。
安装
pod 'UCNetworking'
会自动安装依赖库AFNetworking
和YYCache
。
一般使用
-
一般的
POST
请求[[UCNetworkingManager shareManager] postUrl:@"" params:nil completion:^(NSDictionary *responseObject, UCAPIManagerResponseStatesType responseStates) { } failure:^(NSError *error) { }];
-
带缓存的
POST
请求[[UCNetworkingManager shareManager] postUrl:@"" cacheUrl:@"" params:nil completion:^(NSDictionary *responseObject, UCAPIManagerResponseStatesType responseStates) { } failure:^(NSError *error) { } cacheDictCallBackBlock:^(NSDictionary *cacheDict) { }];
-
一般的
GET
请求[[UCNetworkingManager shareManager] getUrl:@"" params:nil completion:^(NSDictionary *responseObject, UCAPIManagerResponseStatesType responseStates) { } error:^(NSError *error) { }];
-
带缓存的
GET
请求[[UCNetworkingManager shareManager] getUrl:@"" cacheUrl:@"" params:nil completion:^(NSDictionary *responseObject, UCAPIManagerResponseStatesType responseStates) { } failure:^(NSError *error) { } cacheDictCallBackBlock:^(NSDictionary *cacheDict) { }];
代理使用
调用以下方法即可成为代理,目前仅实现了观察网络状态,如需更功能可自行添加。这里使用NSHashTable
来持有多个delegate
,为了避免循环引用,这里的策略可以认为是hashTable以弱引用的方式存储这些delegate,并且当代理被释放时,hashtable会自动清除这个对象,防止内存泄漏。
[[UCNetworkingManager shareManager] addObjToDelegateArray:self];
您可以使用以下方法主动移除这个代理,无需在dealloc中进行特别操作。
- (void)removeObjFromDelegateArray:(id<UCNetworkingManagerDelegate>)delegateObj;
请求头设置
- (void)setRequestHeaderFieldWithToken:(NSString *)accessToken;
- (void)setRequestHTTPHeadFieldWithDictionary:(NSDictionary *)dict;
- (void)removeTokenFromHeaderField;
- (void)removeValueFromHeaderFieldWithKey:(NSString *)keyStr;
URL配置
在UCNetworkingUrlConfig
类中进行配置
数据处理
这里可以根据业务需求对数据进行解析和加工,示例仅解析数据的响应状态。详细信息请参考UCParser