YBNetworking.m 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. //
  2. // YBNetworking.m
  3. // YBVideo
  4. //
  5. // Created by YunBao on 2018/6/6.
  6. // Copyright © 2018年 cat. All rights reserved.
  7. //
  8. #import "YBNetworking.h"
  9. #import "iOSNetworking.h"
  10. @interface YBNetworking()
  11. @end
  12. static AFHTTPSessionManager *_netManager = nil;
  13. @implementation YBNetworking
  14. +(AFHTTPSessionManager *)ybnetManager{
  15. static dispatch_once_t onceToken;
  16. dispatch_once(&onceToken, ^{
  17. _netManager = [AFHTTPSessionManager manager];
  18. });
  19. return _netManager;
  20. }
  21. //+(void)getQCloudWithUrl:(NSString *)url Suc:(PullSuccessBlock)sucBack Fail:(PullFailBlock)failBack {
  22. // AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
  23. // [session GET:url parameters:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  24. // NSString *code = [NSString stringWithFormat:@"%@",[responseObject objectForKey:@"code"]];
  25. // NSDictionary *data = [responseObject valueForKey:@"data"];
  26. // NSString *msg = [NSString stringWithFormat:@"%@-%@",[responseObject objectForKey:@"message"],[responseObject objectForKey:@"codeDesc"]];
  27. // //回调
  28. // sucBack(data,code,msg);
  29. //
  30. // }failure:^(NSURLSessionDataTask *task, NSError *error) {
  31. // [MBProgressHUD showPop:@"网络错误"];
  32. // //必须判断failback是否存在
  33. // if (failBack) {
  34. // failBack(error);
  35. // }
  36. // }];
  37. //}
  38. +(void)getQCloudWithUrl:(NSString *)url Suc:(PullSuccessBlock)sucBack Fail:(PullFailBlock)failBack {
  39. //AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
  40. [[YBNetworking ybnetManager] GET:url parameters:nil headers:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  41. int code = [[NSString stringWithFormat:@"%@",[responseObject objectForKey:@"code"]] intValue];
  42. NSDictionary *data = [responseObject valueForKey:@"data"];
  43. NSString *msg = [NSString stringWithFormat:@"%@-%@",[responseObject objectForKey:@"message"],[responseObject objectForKey:@"codeDesc"]];
  44. //回调
  45. sucBack(code,data,msg);
  46. }failure:^(NSURLSessionDataTask *task, NSError *error) {
  47. [MBProgressHUD showPop:YZMsg(@"网络错误")];
  48. //必须判断failback是否存在
  49. if (failBack) {
  50. failBack(error);
  51. }
  52. }];
  53. }
  54. //+(void)postWithUrl:(NSString *)url Dic:(NSDictionary *)dic Suc:(PullSuccessBlock)sucBack Fail:(PullFailBlock)failBack {
  55. // AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
  56. // //NSString *pullUrl = [purl stringByAppendingFormat:@"?service=%@",url];//index.php
  57. // [session POST:url parameters:dic progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  58. // NSNumber *number = [responseObject valueForKey:@"ret"] ;
  59. // if([number isEqualToNumber:[NSNumber numberWithInt:200]]) {
  60. // NSDictionary *data = [responseObject valueForKey:@"data"];
  61. // NSString *code = [NSString stringWithFormat:@"%@",[data valueForKey:@"code"]];
  62. // NSString *msg = [NSString stringWithFormat:@"%@",[data valueForKey:@"msg"]];
  63. // //回调
  64. // sucBack(data,code,msg);
  65. // }else{
  66. // NSString *erro_fun = [self getFunName:url];
  67. // sucBack(@{},@"9999",[NSString stringWithFormat:@"接口错误:%@-%@\n%@",number,erro_fun,[responseObject valueForKey:@"msg"]]);
  68. // }
  69. // }failure:^(NSURLSessionDataTask *task, NSError *error) {
  70. // [MBProgressHUD showPop:@"网络错误"];
  71. // //必须判断failback是否存在
  72. // if (failBack) {
  73. // failBack(error);
  74. // }
  75. // }];
  76. //}
  77. #pragma mark - AF
  78. //+(void)postWithUrl:(NSString *)url Dic:(NSDictionary *)dic Suc:(PullSuccessBlock)sucBack Fail:(PullFailBlock)failBack {
  79. //
  80. // NSString *pullUrl = [purl stringByAppendingFormat:@"?service=%@",url];//index.php
  81. // pullUrl = [pullUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
  82. //
  83. // NSMutableDictionary *pullDic = [[NSMutableDictionary alloc]initWithDictionary:dic];
  84. // if (![PublicObj checkNull:[Config getOwnID]]) {
  85. // [pullDic addEntriesFromDictionary:@{@"uid":[Config getOwnID],@"token":[Config getOwnToken]}];
  86. // }
  87. // [pullDic addEntriesFromDictionary:@{@"version_ios":[PublicObj getAppBuild],@"mobileid":[PublicObj getDeviceUUID],@"device":[PublicObj iphoneType]}];
  88. // //NSLog(@"请求参数(%@):%@\n\nfullUrl:\n%@%@\n",pullUrl,pullDic,pullUrl,[self getStrWithDic:pullDic]);
  89. // NSLog(@"\nfullUrl:\n%@%@\n",pullUrl,[self getStrWithDic:pullDic]);
  90. // [[YBNetworking ybnetManager] POST:pullUrl parameters:pullDic headers:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
  91. // NSNumber *number = [responseObject valueForKey:@"ret"] ;
  92. // if([number isEqualToNumber:[NSNumber numberWithInt:200]]) {
  93. // //NSLog(@"获取参数(%@):%@",pullUrl,responseObject);
  94. // NSDictionary *data = [responseObject valueForKey:@"data"];
  95. // id info = [data valueForKey:@"info"];
  96. // int code = [minstr([data valueForKey:@"code"]) intValue];
  97. // NSString *msg = [NSString stringWithFormat:@"%@",[data valueForKey:@"msg"]];
  98. // //回调
  99. // sucBack(code,info,msg);
  100. // if (code == 700) {
  101. // dispatch_async(dispatch_get_main_queue(), ^{
  102. // [MBProgressHUD hideHUD];
  103. // [PublicObj tokenExpired:msg];
  104. // });
  105. // NSLog(@"====%@",pullUrl);
  106. // }
  107. // }else{
  108. // //NSString *erro_fun = [self getFunName:pullUrl];
  109. // sucBack(999,@[],[NSString stringWithFormat:@"%@:%@-%@\n%@",YZMsg(@"接口错误"),number,url,[responseObject valueForKey:@"msg"]]);
  110. // }
  111. // }failure:^(NSURLSessionDataTask *task, NSError *error) {
  112. // //必须判断failback是否存在
  113. // if (failBack) {
  114. // failBack(error);
  115. // }
  116. // [MBProgressHUD showPop:YZMsg(@"网络错误")];
  117. // /*
  118. // NSString *msg = [NSString stringWithFormat:@"%@-\n%@",error,pullDic];
  119. // UIAlertController *alertC = [UIAlertController alertControllerWithTitle:@"error" message:msg preferredStyle:UIAlertControllerStyleAlert];
  120. // UIAlertAction *cancelA = [UIAlertAction actionWithTitle:@"复制" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
  121. // UIPasteboard *paste = [UIPasteboard generalPasteboard];
  122. // paste.string = msg;
  123. // }];
  124. // UIViewController *currentVC = [UIApplication sharedApplication].delegate.window.rootViewController;
  125. // [alertC addAction:cancelA];
  126. // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  127. // [currentVC presentViewController:alertC animated:YES completion:nil];
  128. // });
  129. // */
  130. //
  131. // }];
  132. //}
  133. #pragma mark -
  134. +(void)postWithUrl:(NSString *)url Dic:(NSDictionary *)dic Suc:(PullSuccessBlock)sucBack Fail:(PullFailBlock)failBack {
  135. [iOSNetworking postWithURL:url params:dic success:^(NSURLResponse *response, id responseObject) {
  136. dispatch_async(dispatch_get_main_queue(), ^{
  137. NSNumber *number = [responseObject valueForKey:@"ret"] ;
  138. if([number isEqualToNumber:[NSNumber numberWithInt:200]]) {
  139. NSDictionary *data = [responseObject valueForKey:@"data"];
  140. id info = [data valueForKey:@"info"];
  141. int code = [minstr([data valueForKey:@"code"]) intValue];
  142. NSString *msg = [NSString stringWithFormat:@"%@",[data valueForKey:@"msg"]];
  143. //回调
  144. if (sucBack) {
  145. sucBack(code,info,msg);
  146. }
  147. if (code == 700) {
  148. [MBProgressHUD hideHUD];
  149. [PublicObj tokenExpired:msg];
  150. NSLog(@"====%@",url);
  151. }
  152. }else{
  153. if (sucBack) {
  154. NSString *resDes = [PublicObj checkNull:minstr([responseObject valueForKey:@"msg"])]?@"":minstr([responseObject valueForKey:@"msg"]);
  155. NSString *failDesStr = [NSString stringWithFormat:@"%@:%@\n%@-%@",YZMsg(@"接口错误"),minstr([responseObject valueForKey:@"ret"]),url,resDes];
  156. NSHTTPURLResponse *httpRes = (NSHTTPURLResponse*)response;
  157. if (httpRes.statusCode != 200) {
  158. failDesStr = [NSString stringWithFormat:@"%@:%ld\n%@-%@",YZMsg(@"接口错误"),(long)httpRes.statusCode,url,resDes];
  159. }
  160. sucBack(999,@[],failDesStr);
  161. }
  162. }
  163. });
  164. } failure:^(NSString *error) {
  165. dispatch_async(dispatch_get_main_queue(), ^{
  166. if (failBack) {
  167. failBack(error);
  168. }
  169. [MBProgressHUD showError:YZMsg(@"信息错误")];
  170. });
  171. }];
  172. }
  173. +(NSString *)getStrWithDic:(NSDictionary*)dic {
  174. if ([dic allKeys].count<=0) {
  175. return @"";
  176. }
  177. NSString *urlStr = @"";
  178. for (NSString *key in [dic allKeys]) {
  179. NSString *value = minstr([dic valueForKey:key]);
  180. value = [value stringByReplacingOccurrencesOfString:@" " withString:@""];
  181. urlStr = [urlStr stringByAppendingFormat:@"&%@=%@",key,value];
  182. }
  183. return urlStr;
  184. }
  185. /**
  186. * 获得接口名称
  187. * @param url 全地址(eg:xxx/api/public/?service=Video.getRecommendVideos&uid=12470&type=0&p=1)
  188. * @return 返回的接口名(eg:Video.getRecommendVideos)
  189. */
  190. +(NSString *)getFunName:(NSString *)url{
  191. if (![url containsString:@"&"]) {
  192. url = [url stringByAppendingFormat:@"&"];
  193. }
  194. NSRange startRange = [url rangeOfString:@"="];
  195. NSRange endRange = [url rangeOfString:@"&"];
  196. NSRange range = NSMakeRange(startRange.location + startRange.length, endRange.location - startRange.location - startRange.length);
  197. NSString *result = [url substringWithRange:range];
  198. return result;
  199. }
  200. #pragma mark - 获取视频分类
  201. +(void)getVideoClass:(BOOL)postNot {
  202. [self postWithUrl:@"Video.getClassLists" Dic:@{} Suc:^(int code, id info, NSString *msg) {
  203. if (code == 0) {
  204. if ([info isKindOfClass:[NSArray class]]) {
  205. [common saveVideoClass:info];
  206. //rk_net
  207. if (postNot) {
  208. [[NSNotificationCenter defaultCenter] postNotificationName:@"FirstGetVideoClass" object:nil];
  209. }
  210. }
  211. }
  212. } Fail:^(id fail) {
  213. }];
  214. }
  215. /// 获取用户关系
  216. +(void)getRelationWithTouid:(NSString *)touid finish:(PullFinishiBlock)finish {
  217. [YBNetworking postWithUrl:@"User.getUserHome" Dic:@{@"touid":touid} Suc:^(int code, id info, NSString *msg) {
  218. if (code == 0) {
  219. NSDictionary *infoDic = [info firstObject];
  220. if (finish) {
  221. finish(0,infoDic);
  222. }
  223. }else{
  224. if (finish) {
  225. finish(code,@{});
  226. }
  227. }
  228. } Fail:^(id fail) {
  229. if (finish) {
  230. finish(-1,@{});
  231. }
  232. }];
  233. }
  234. @end