网络层方法封装5.2.1
- 特性
- 5.1
- 开启/关闭 Log
- 自定义 Logger
- RAC支持
- 5.2.1
- 修复了一些 bug
- 由于服务器异常而返回的 NSData 转为 HTML 页面并展示出来(需要打开 DebugMode)
- 把链式调用方法抽出为一个 DKHTTPChainTool 类
- 添加链式调用方法
链式调用的好处就是要啥参数就添加啥,方便快捷,不用担心代码不够漂亮!
1 2 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;
|
使用起来感觉是这样子的
1 2 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
1 2 3 4 5
| #define DKLog(...) NSLog(@"%s %zd行 %@",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])
[DKHTTPTool setLogger:^(NSString *msg) { DKLog(@"%@",msg); }];
|
RAC支持
1
| - (RACSignal *(^)())executeSignal;
|
使用
1 2 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.调试模式
1 2
| DKHTTPSharedTool.debugMode = YES; 如果服务器发生异常,那么就会发生如图情况
|


