网络层方法封装5.2.1
- 特性
- 5.1
- 开启/关闭 Log
- 自定义 Logger
- RAC支持
 
- 5.2.1
- 修复了一些 bug
- 由于服务器异常而返回的 NSData 转为 HTML 页面并展示出来(需要打开 DebugMode)
- 把链式调用方法抽出为一个 DKHTTPChainTool 类
 
- 添加链式调用方法
链式调用的好处就是要啥参数就添加啥,方便快捷,不用担心代码不够漂亮!
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | #define DKHTTPChainInstance [[DKHTTPChainTool alloc] init]
 
 - (DKHTTPChainTool * (^)(NSString *method))method;
 - (DKHTTPChainTool * (^)(NSString *url))url;
 - (DKHTTPChainTool * (^)(NSDictionary *header))header;
 - (DKHTTPChainTool * (^)(DKCacheStrategy strategy))cacheStrategy;
 - (DKHTTPChainTool * (^)(DKHTTPParamsVarifyBlock paramsVerify))verifyParams;
 - (DKHTTPChainTool * (^)(DKHTTPRequestFilterBlock resultFilter))requestFilter;
 - (DKHTTPChainTool * (^)(NSDictionary *params))params;
 
 - (NSInteger (^)(DKHTTPResponseBlock responseBlock))execute;
 
 | 
使用起来感觉是这样子的
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | DKHTTPChainInstance.method(@"POST").url(@"")
 .params(@{@"account":@"[email protected]",@"password":@"123456"})
 .cacheStrategy(DKCacheStrategy_NETWORK_ONLY)
 .verifyParams(^NSString *(NSDictionary *params){
 return nil;
 })
 .requestFilter(^DKRequest *(DKRequest *request){
 return request;
 })
 .execute(^(DKResponse *response){
 NSLog(@"%@",response.rawData);
 });
 
 | 
开启/关闭 Log
| 1
 | DKHTTPSharedTool.showLog = YES/NO
 | 
自定义 Logger
| 12
 3
 4
 5
 
 | #define DKLog(...) NSLog(@"%s %zd行 %@",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])
 [DKHTTPTool setLogger:^(NSString *msg) {
 DKLog(@"%@",msg);
 }];
 
 | 
RAC支持
| 1
 | - (RACSignal *(^)())executeSignal;
 | 
使用
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | RACSignal *signal = DKHTTPChainInstance.method(@"POST").url()
 .header(@{@"token":@"0e83179ac83741416e50b0ea12113f6e"})
 .params(@{@"account":@"",@"password":@"123456"})
 .cacheStrategy(DKCacheStrategy_NETWORK_ONLY)
 .verifyParams(^NSString *(NSDictionary *params){
 return nil;
 })
 .requestFilter(^DKRequest *(DKRequest *request){
 return request;
 })
 .executeSignal();
 [signal subscribeNext:^(id x) {
 NSLog(@"%@",x);
 }];
 
 | 
1.DKHTTPTool的链式调用
| 1
 | #define DKHTTPChainInstance [[DKHTTPChainTool alloc] init]
 | 
使用方法和上面说的一样
2.调试模式
| 12
 
 | DKHTTPSharedTool.debugMode = YES; 如果服务器发生异常,那么就会发生如图情况
 
 | 


