YanCNetWorkManager.m 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. //
  2. // YanCNetWorkManager.m
  3. // BorrowMoney
  4. //
  5. // Created by chengzhang Yan on 2016/10/6.
  6. // Copyright © 2016年 JuYi. All rights reserved.
  7. //
  8. #import "YanCNetWorkManager.h"
  9. /**
  10. 本类是对AFNetWorking 进行二次封装,并结合MBProgressHUD,给出基本信息提示
  11. 由于项目涉及到:
  12. 带/不带Token的GET/POST请求,以及很多请求中需要用到云盾的设备指纹请求,进行合并处理
  13. @URLlStr:网络请求URL
  14. @parameters:请求参数
  15. @finish:请求成功
  16. @enError:请求失败
  17. */
  18. @implementation YanCNetWorkManager
  19. /**
  20. 无Token的POST请求 上传头像 及 工作照片
  21. */
  22. + (void)requestPostWithURLStr:(NSString *)URLStr fileData:(id)fileData name:(id)name fileName:(id)fileName mimeType:(id)mimeType parameters:(id)parameters finish:(void(^)(id dataDic))finish enError:(void(^)(NSError *error))enError {
  23. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  24. manager.requestSerializer = [AFHTTPRequestSerializer serializer];
  25. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  26. manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
  27. manager.requestSerializer.timeoutInterval = 40.f;
  28. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
  29. [manager POST:URLStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
  30. // text是和后台约定的
  31. [formData appendPartWithFileData:UIImageJPEGRepresentation(fileData,0.5) name:name fileName:fileName mimeType:mimeType];
  32. } progress:^(NSProgress * _Nonnull uploadProgress) {
  33. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  34. NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  35. finish(dataDic);
  36. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  37. enError(error);
  38. NSLog(@"error ===== %@", error);
  39. }];
  40. }
  41. /**
  42. 无Token的GET请求
  43. */
  44. + (void)requestGETWithURLStr:(NSString *)URLStr parameters:(id)parameters finish:(void(^)(id dataDic))finish enError:(void(^)(NSError *error))enError {
  45. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  46. manager.requestSerializer = [AFHTTPRequestSerializer serializer];
  47. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  48. manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
  49. manager.requestSerializer.timeoutInterval = 40.f;
  50. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
  51. [manager GET:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  52. NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  53. finish(dataDic);
  54. id obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
  55. if ([obj isKindOfClass:[NSArray class]]||[obj isKindOfClass:[NSDictionary class]]) {
  56. //解决打印字典的时候汉子显示Unicode编码的问题
  57. NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],[obj descriptionWithLocale:obj]);
  58. }else{
  59. NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],obj);
  60. }
  61. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  62. enError(error);
  63. NSLog(@"error ===== %@", error);
  64. }];
  65. }
  66. /**
  67. 无Token的POST请求
  68. */
  69. + (void)requestPostWithURLStr:(NSString *)URLStr parameters:(id)parameters finish:(void(^)(id dataDic))finish enError:(void(^)(NSError *error))enError {
  70. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  71. manager.requestSerializer = [AFHTTPRequestSerializer serializer];
  72. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  73. manager.requestSerializer.timeoutInterval = 40.f;
  74. manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
  75. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
  76. [manager POST:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  77. NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  78. finish(dataDic);
  79. id obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
  80. if ([obj isKindOfClass:[NSArray class]]||[obj isKindOfClass:[NSDictionary class]]) {
  81. //解决打印字典的时候汉子显示Unicode编码的问题
  82. NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],[obj descriptionWithLocale:obj]);
  83. }else{
  84. NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],obj);
  85. }
  86. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  87. enError(error);
  88. NSLog(@"error ===== %@", error);
  89. }];
  90. }
  91. /**
  92. 带Token的GET请求
  93. */
  94. + (void)requestGETContainAuthorizationWithURLStr:(NSString *)URLStr parameters:(id)parameters token_type:(NSString *)token_type access_token:(NSString *)access_token finish:(void(^)(id dataDic))finish enError:(void(^)(NSError *error))enError {
  95. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  96. manager.requestSerializer = [AFHTTPRequestSerializer serializer];
  97. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  98. manager.requestSerializer.timeoutInterval = 40.f;
  99. manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
  100. NSString *authorization = [NSString stringWithFormat:@"%@ %@",token_type, access_token];
  101. NSLog(@"带Token的GET请求 %@, %@, %@", token_type, access_token, authorization);
  102. [manager.requestSerializer setValue:authorization forHTTPHeaderField:@"Authorization"];
  103. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
  104. [manager GET:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  105. NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  106. // if ([[dataDic objectForKey:@"errorCode"] isEqualToString:@"0000"]) {
  107. // //请求成功
  108. // finish(dataDic);
  109. // }
  110. //请求成功
  111. finish(dataDic);
  112. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  113. enError(error);
  114. }];
  115. }
  116. /**
  117. 带Token的POST请求
  118. */
  119. + (void)requestPostContainAuthorizationWithURLStr:(NSString *)URLStr parameters:(id)parameters token_type:(NSString *)token_type access_token:(NSString *)access_token finish:(void(^)(id dataDic))finish enError:(void(^)(NSError *error))enError {
  120. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
  121. manager.requestSerializer = [AFHTTPRequestSerializer serializer];
  122. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
  123. manager.requestSerializer.timeoutInterval = 40.f;
  124. manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
  125. NSString *authorization = [NSString stringWithFormat:@"%@ %@",token_type, access_token];
  126. NSLog(@"带Token的POST请求 %@, %@, %@", token_type, access_token, authorization);
  127. [manager.requestSerializer setValue:authorization forHTTPHeaderField:@"Authorization"];
  128. manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
  129. [manager POST:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  130. NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
  131. // if ([[dataDic objectForKey:@"Code"] isEqualToString:@"200"]) {
  132. // //请求成功
  133. // finish(dataDic);
  134. // }
  135. //请求成功
  136. finish(dataDic);
  137. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  138. enError(error);
  139. }];
  140. }
  141. @end