UCNetworking 1.0.1

UCNetworking 1.0.1

“RPGLiker”维护。



 
依赖:
AFNetworking>= 0
YYKit>= 0
 

  • 作者:
  • RPGLiker

前言

以前的框架是为了在网络请求完成后立即将JSON转换为所需的model,但为了新的路由组件化框架,降低耦合,所以移除了Model这一环,这是重构后的。

安装

	pod 'UCNetworking'

会自动安装依赖库AFNetworkingYYCache

一般使用

  • 一般的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