酷店

KDPNetworkRequestHTTP.m 7.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. //
  2. // KDPNetworkRequestHTTP.m
  3. // KuDianProject
  4. //
  5. // Created by 学丽 on 2019/7/4.
  6. // Copyright © 2019 KDP. All rights reserved.
  7. //
  8. #import "KDPNetworkRequestHTTP.h"
  9. #import <AdSupport/AdSupport.h>
  10. #import "KDPPhoneLoginViewController.h"
  11. @implementation KDPNetworkRequestHTTP
  12. + (void)postURL:(NSString *)url params:(NSDictionary *)params success:(void(^)(id json))success failure:(void(^)(NSError *error))failure
  13. {
  14. // 1.创建请求管理者
  15. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  16. manager.requestSerializer = [AFHTTPRequestSerializer serializer]; // 解析为data
  17. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  18. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",nil];
  19. manager.requestSerializer.timeoutInterval = 10;
  20. NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
  21. NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
  22. [manager.requestSerializer setValue:app_Version forHTTPHeaderField:@"version"];
  23. [manager.requestSerializer setValue:SOURCE_ID forHTTPHeaderField:@"source"];
  24. [manager.requestSerializer setValue:@"ios" forHTTPHeaderField:@"platform"];
  25. if ([KDPAccountTool isLogin]) {
  26. NSString *token = [KDPAccountTool account].token;
  27. [manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
  28. }
  29. NSString *deviceUUID = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
  30. NSString *uuid = [NSString stringWithFormat:@"I-%@",deviceUUID];
  31. [manager.requestSerializer setValue:uuid forHTTPHeaderField:@"idfa"];
  32. // NSString *sex = [[NSUserDefaults standardUserDefaults] objectForKey:UserSexKey];
  33. [manager.requestSerializer setValue:@"0" forHTTPHeaderField:@"sex"];
  34. // 2.发送请求
  35. [manager POST:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  36. id responseDict =[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
  37. if ([responseDict[@"errno"] isEqualToString:@"0"]) {
  38. if (!responseDict[@"rst"]) {
  39. success(@{});
  40. }else{
  41. success(responseDict[@"rst"]);
  42. }
  43. }else{
  44. NSString *message=responseDict[@"err"];
  45. if([responseDict[@"errno"] isEqualToString:@"10009"]) {
  46. }else if([responseDict[@"errno"] isEqualToString:@"4001"]) {
  47. //让用户退出
  48. [MBProgressHUD showMessage:@"登录信息过期,请重新登录"];
  49. [self appOpenLogin];
  50. }else if([responseDict[@"errno"] isEqualToString:@"4002"]) {
  51. //让用户退出
  52. [MBProgressHUD showMessage:@"您已在其他设备登录,是否重新登录"];
  53. [self appOpenLogin];
  54. }else{
  55. }
  56. if (failure) {
  57. failure(nil);
  58. }
  59. }
  60. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  61. NSData * data = error.userInfo[@"com.alamofire.serialization.response.error.data"];
  62. NSString * str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
  63. NSLog(@"服务器的错误原因:%@",str);
  64. NSLog(@"报错地址:%@",url);
  65. [MBProgressHUD showError:@"服务器开小差"];
  66. if (failure) {
  67. failure(error);
  68. }
  69. }];
  70. }
  71. +(void)appOpenLogin
  72. {
  73. [KDPAccountTool deleteAccount];
  74. [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:[[UINavigationController alloc]initWithRootViewController:[[KDPPhoneLoginViewController alloc]init]] animated:YES completion:nil];
  75. }
  76. /**
  77. *普通get请求
  78. */
  79. + (void)getURL:(NSString *)url params:(NSDictionary *)params success:(void(^)(id json))success failure:(void(^)(NSError *error))failure
  80. {
  81. // 1.创建请求管理者
  82. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  83. manager.requestSerializer = [AFHTTPRequestSerializer serializer]; // 解析为data
  84. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  85. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",nil];
  86. manager.requestSerializer.timeoutInterval = 10;
  87. NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
  88. NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
  89. [manager.requestSerializer setValue:app_Version forHTTPHeaderField:@"version"];
  90. [manager.requestSerializer setValue:SOURCE_ID forHTTPHeaderField:@"source"];
  91. [manager.requestSerializer setValue:@"ios" forHTTPHeaderField:@"platform"];
  92. if ([KDPAccountTool isLogin]) {
  93. NSString *token = [KDPAccountTool account].token;
  94. [manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
  95. }
  96. NSString *deviceUUID = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
  97. NSString *uuid = [NSString stringWithFormat:@"I-%@",deviceUUID];
  98. [manager.requestSerializer setValue:uuid forHTTPHeaderField:@"idfa"];
  99. // NSString *sex = [[NSUserDefaults standardUserDefaults] objectForKey:UserSexKey];
  100. [manager.requestSerializer setValue:@"0" forHTTPHeaderField:@"sex"];
  101. // 2.发送请求
  102. [manager GET:url parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  103. id responseDict =[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
  104. if ([responseDict[@"errno"] isEqualToString:@"0"]) {
  105. if (!responseDict[@"rst"]) {
  106. success(@{});
  107. }else{
  108. success(responseDict[@"rst"]);
  109. }
  110. }else{
  111. NSString *message=responseDict[@"err"];
  112. if([responseDict[@"errno"] isEqualToString:@"10009"]) {
  113. }else if([responseDict[@"errno"] isEqualToString:@"4001"]) {
  114. //让用户退出
  115. [MBProgressHUD showMessage:@"登录信息过期,请重新登录"];
  116. [self appOpenLogin];
  117. }else if([responseDict[@"errno"] isEqualToString:@"4002"]) {
  118. //让用户退出
  119. [self appOpenLogin];
  120. [MBProgressHUD showMessage:@"您已在其他设备登录,是否重新登录"];
  121. }else{
  122. }
  123. if (failure) {
  124. failure(nil);
  125. }
  126. }
  127. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  128. NSData * data = error.userInfo[@"com.alamofire.serialization.response.error.data"];
  129. NSString * str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
  130. NSLog(@"服务器的错误原因:%@",str);
  131. NSLog(@"报错地址:%@",url);
  132. [MBProgressHUD showError:@"服务器开小差"];
  133. if (failure) {
  134. failure(error);
  135. }
  136. }];
  137. }
  138. @end