| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- //
- // YanCNetWorkManager.m
- // BorrowMoney
- //
- // Created by chengzhang Yan on 2016/10/6.
- // Copyright © 2016年 JuYi. All rights reserved.
- //
- #import "YanCNetWorkManager.h"
- /**
- 本类是对AFNetWorking 进行二次封装,并结合MBProgressHUD,给出基本信息提示
- 由于项目涉及到:
- 带/不带Token的GET/POST请求,以及很多请求中需要用到云盾的设备指纹请求,进行合并处理
-
- @URLlStr:网络请求URL
- @parameters:请求参数
- @finish:请求成功
- @enError:请求失败
- */
- @implementation YanCNetWorkManager
- /**
- 无Token的POST请求 上传头像 及 工作照片
- */
- + (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 {
- AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
- manager.requestSerializer = [AFHTTPRequestSerializer serializer];
- manager.responseSerializer = [AFHTTPResponseSerializer serializer];
- manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
- manager.requestSerializer.timeoutInterval = 40.f;
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
- [manager POST:URLStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
- // text是和后台约定的
- [formData appendPartWithFileData:UIImageJPEGRepresentation(fileData,0.5) name:name fileName:fileName mimeType:mimeType];
-
- } progress:^(NSProgress * _Nonnull uploadProgress) {
-
- } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
- finish(dataDic);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- enError(error);
- NSLog(@"error ===== %@", error);
- }];
- }
- /**
- 无Token的GET请求
- */
- + (void)requestGETWithURLStr:(NSString *)URLStr parameters:(id)parameters finish:(void(^)(id dataDic))finish enError:(void(^)(NSError *error))enError {
- AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
- manager.requestSerializer = [AFHTTPRequestSerializer serializer];
- manager.responseSerializer = [AFHTTPResponseSerializer serializer];
- manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
- manager.requestSerializer.timeoutInterval = 40.f;
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
- [manager GET:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
- finish(dataDic);
-
- id obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
- if ([obj isKindOfClass:[NSArray class]]||[obj isKindOfClass:[NSDictionary class]]) {
- //解决打印字典的时候汉子显示Unicode编码的问题
- NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],[obj descriptionWithLocale:obj]);
- }else{
- NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],obj);
- }
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- enError(error);
- NSLog(@"error ===== %@", error);
- }];
- }
- /**
- 无Token的POST请求
- */
- + (void)requestPostWithURLStr:(NSString *)URLStr parameters:(id)parameters finish:(void(^)(id dataDic))finish enError:(void(^)(NSError *error))enError {
- AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
- manager.requestSerializer = [AFHTTPRequestSerializer serializer];
- manager.responseSerializer = [AFHTTPResponseSerializer serializer];
- manager.requestSerializer.timeoutInterval = 40.f;
- manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
- [manager POST:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
- finish(dataDic);
-
- id obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
- if ([obj isKindOfClass:[NSArray class]]||[obj isKindOfClass:[NSDictionary class]]) {
- //解决打印字典的时候汉子显示Unicode编码的问题
- NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],[obj descriptionWithLocale:obj]);
- }else{
- NSLog(@"%@ %@ ===== responseDictionary ==========%@",URLStr,[parameters descriptionWithLocale:parameters],obj);
- }
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- enError(error);
- NSLog(@"error ===== %@", error);
- }];
- }
- /**
- 带Token的GET请求
- */
- + (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 {
- AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
- manager.requestSerializer = [AFHTTPRequestSerializer serializer];
- manager.responseSerializer = [AFHTTPResponseSerializer serializer];
- manager.requestSerializer.timeoutInterval = 40.f;
- manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
- NSString *authorization = [NSString stringWithFormat:@"%@ %@",token_type, access_token];
- NSLog(@"带Token的GET请求 %@, %@, %@", token_type, access_token, authorization);
- [manager.requestSerializer setValue:authorization forHTTPHeaderField:@"Authorization"];
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
- [manager GET:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
- // if ([[dataDic objectForKey:@"errorCode"] isEqualToString:@"0000"]) {
- // //请求成功
- // finish(dataDic);
- // }
- //请求成功
- finish(dataDic);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- enError(error);
- }];
- }
- /**
- 带Token的POST请求
- */
- + (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 {
- AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
- manager.requestSerializer = [AFHTTPRequestSerializer serializer];
- manager.responseSerializer = [AFHTTPResponseSerializer serializer];
- manager.requestSerializer.timeoutInterval = 40.f;
- manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
- NSString *authorization = [NSString stringWithFormat:@"%@ %@",token_type, access_token];
- NSLog(@"带Token的POST请求 %@, %@, %@", token_type, access_token, authorization);
- [manager.requestSerializer setValue:authorization forHTTPHeaderField:@"Authorization"];
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"application/json",@"text/json",@"text/javascript",@"text/html", @"charset=utf-8", nil];
- [manager POST:URLStr parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- NSDictionary *dataDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
- // if ([[dataDic objectForKey:@"Code"] isEqualToString:@"200"]) {
- // //请求成功
- // finish(dataDic);
- // }
- //请求成功
- finish(dataDic);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- enError(error);
-
- }];
- }
- @end
|