123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137 |
- //
- // UseAccountManage.m
- // VclustersGemini
- //
- // Created by APPLE on 2019/6/13.
- // Copyright © 2019 APPLE. All rights reserved.
- //
- #import "UseAccountManage.h"
- #import "AFNetworkReachabilityManager.h"
- #import "VclCrash.h"
- #import "AppDelegate.h"
- #import "iPhone.h"
- #import "Notification.h"
- #import "CloudPhoneAPI.h"
- #define CloudServiceForDevice @"http://47.98.158.194:8014"
- #define PayCloudService @"http://193.112.153.4"
- @interface UseAccountManage ()<NSURLSessionDelegate,NSURLConnectionDelegate,NSURLSessionTaskDelegate>
- {
- ;
- }
- @property (nonatomic) SSLAuthenticate authenticated;
- @property (nonatomic,strong) NSURLConnection *urlConnection;
- @end
- @implementation UseAccountManage
- @synthesize manager;
- @synthesize mCloudService;
- @synthesize mRequstAPI;
- static UseAccountManage *shareInstance = nil;
- + (UseAccountManage *)shareInstance
- {
- static dispatch_once_t onceToken;
-
- dispatch_once(&onceToken, ^{
- shareInstance = [[UseAccountManage alloc]init];
- });
-
- return shareInstance;
- }
- - (id)init
- {
- self = [super init];
-
- if (self) {
- [self initManager];
- }
-
- return self;
- }
- - (void)initManager
- {
- mCloudService = CloudService;
-
- if ([mCloudService rangeOfString:@"https"].location != NSNotFound)
- {
- manager = [[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:mCloudService]];
- }
- else
- {
- manager = [AFHTTPSessionManager manager];
- }
-
- manager.requestSerializer = [AFJSONRequestSerializer serializer];
- manager.responseSerializer = [AFJSONResponseSerializer serializer];
- [manager.requestSerializer setHTTPShouldHandleCookies:NO];
- [manager.requestSerializer setHTTPShouldUsePipelining:NO];
- manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", @"text/plain",@"application/xml",@"image/png", @"audio/aac", @"text/x-vcard",nil];
- manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", nil];
- // manager.accessibilityLanguage = @"zh-CN,zh";
- manager.requestSerializer.timeoutInterval = 20;
- // 请求头里添加版本号
- NSString *version = [NSString stringWithFormat:@"v%@", [iPhone appVersion]];
- NSString *uuid = [iPhone phoneDeviceUuid];
- [manager.requestSerializer setValue:version forHTTPHeaderField:@"versionName"];
- [manager.requestSerializer setValue:uuid forHTTPHeaderField:@"devicesId"];
- [manager.requestSerializer setValue:@"2" forHTTPHeaderField:@"client"];
- [manager.requestSerializer setValue:@"zh-CN,zh" forHTTPHeaderField:@"Accept-Language"];
- [manager.requestSerializer setValue:@"iosSigned" forHTTPHeaderField:@"channelCode"];
-
- if ([mCloudService rangeOfString:@"https"].location != NSNotFound)
- {
- [manager setSecurityPolicy:[self customSecurityPolicy]];
- }
- }
- #pragma mark 网络请求 异常情况处理
- // 账号冻结、系统维护、账号注销、异地登陆
- - (BOOL)isDidHandelCustomStatusFun:(id)responseObject task:(NSURLSessionDataTask *)task {
-
- if(responseObject && [responseObject isKindOfClass:[NSDictionary class]] && [[responseObject allKeys] containsObject:@"status"])
- {
- NSNumber * status = responseObject[@"status"];
-
- if (status && status.intValue == 3003 ) {// 1、账号冻结
- [[NSNotificationCenter defaultCenter] postNotificationName:NotNameAccountFreeze object:nil userInfo:responseObject];
- return YES;
- }else if (status && status.intValue == 5100 ) {// 2、系统维护中
-
- [[NSNotificationCenter defaultCenter] postNotificationName:NotNameSystemMaintain object:nil userInfo:responseObject];
- return YES;
- }else if (status && status.intValue == 3004 ) {// 3、账号已注销
-
- [[NSNotificationCenter defaultCenter] postNotificationName:NotNameAccountDestroy object:nil userInfo:responseObject];
- return YES;
- }else if (status && status.intValue == 6013 ) {// 4、异地登陆
-
- [[NSNotificationCenter defaultCenter] postNotificationName:AccountLoginWithOtherDeviceNotification object:nil userInfo:responseObject];
- return YES;
- }else if (status && status.intValue == 6014 ) {// 5、token失效
-
- [[NSNotificationCenter defaultCenter] postNotificationName:TokenIsInvalidNotification object:nil userInfo:responseObject];
- return YES;
- }
- }
-
- // http请求错误码statusCode
- NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
- NSInteger statusCode = response.statusCode; // 正常:200
- NSString *urlString = task.currentRequest.URL.absoluteString;
- HLog(@"statusCode:%ld status:%@ url:%@", statusCode,responseObject[@"status"],urlString);
- if (statusCode == 6013) { // 4、异地登陆
- [[NSNotificationCenter defaultCenter] postNotificationName:AccountLoginWithOtherDeviceNotification object:nil userInfo:responseObject];
- return YES;
- }else if (statusCode == 6014) {
- [[NSNotificationCenter defaultCenter] postNotificationName:TokenIsInvalidNotification object:nil userInfo:responseObject];
- return YES;
- }
- return NO;
- }
- // 系统繁忙
- - (NSMutableDictionary *)systemBusyDict {
- if (!_systemBusyDict) {
- _systemBusyDict = [NSMutableDictionary dictionary];
- [_systemBusyDict setObject:@"系统繁忙,请稍后再试!" forKey:@"msg"];
- [_systemBusyDict setObject:@(-1) forKey:@"status"];
- [_systemBusyDict setObject:@"" forKey:@"data"];
- }
- return _systemBusyDict;
- }
- // 网络异常
- - (NSMutableDictionary *)networkErrorDict {
- if (!_networkErrorDict) {
- _networkErrorDict = [NSMutableDictionary dictionary];
- [_networkErrorDict setObject:@"网络异常,请稍后重试!" forKey:@"msg"];
- [_networkErrorDict setObject:@(-999) forKey:@"status"];
- [_networkErrorDict setObject:[NSDictionary new] forKey:@"data"];
- }
- return _networkErrorDict;
- }
- - (id)check401And403WithObject:(id)responseObject {
-
- if (CODE == 401 || CODE == 403) {
- return self.systemBusyDict;
- }else {
- return responseObject;
- }
- }
- // 弹出设备已在别处登录
- -(void)showLoginOutTip:(NSString*)msgStr
- {
- // NSString *msg = msgStr.length != 0 ? msgStr : @"设备已在别处登录";
- //
- // UINavigationController *curNav = ksharedAppDelegate.MainTabbar.navigationController;
- //
- // UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:msg preferredStyle:UIAlertControllerStyleAlert];
- // UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
- //
- // [curNav popToRootViewControllerAnimated:YES];
- // }];
- // [alertController addAction:cancelAction];
- //
- // [curNav presentViewController:alertController animated:YES completion:nil];
- }
- #pragma mark 获取链接
- - (void)requestWithPostparameters:(NSDictionary*)parameters complteteBlock:(CloudServiceCompletionBlock)complteteBlock
- {
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {
- complteteBlock(nil, self.networkErrorDict);
- return;
- }
-
- NSString *url = [mCloudService stringByAppendingString:mRequstAPI];
-
- HLog(@"\n------Post请求连接->%@",url);
- HLog(@"\n------Post请求体->%@",parameters);
-
- // // RSA签名
- // if ([url containsString:GetOrderNumberAPI] ||
- // [url containsString:STARCOINPAYAPI] ||
- // [url containsString:GETAIRPAYCONNECTIONAPI] ||
- // [url containsString:GETWXPAYCONNECTIONAPI]) {
- //
- // NSString *jsonStr = [RSATool sortArrWithDictionary:parameters];
- // NSString *signStr = [RSATool RSASignEncrypt:jsonStr key:Const_Pay_PrivateKey];
- // signStr = [RSATool deleteNewlineCharactersWithString:signStr];
- // if (signStr.length == 0) {
- // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
- // [self requestWithPostparameters:parameters complteteBlock:complteteBlock];
- // });
- // return;
- // }
- // [manager.requestSerializer setValue:signStr forHTTPHeaderField:@"sign"];
- // }else { // 清空签名
- [manager.requestSerializer setValue:@"" forHTTPHeaderField:@"sign"];
- // }
-
-
- [manager POST:url
- parameters:parameters
- progress:^(NSProgress * _Nonnull uploadProgress) {
- ;
- }
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(nil,[self check401And403WithObject:responseObject]);
- }
- failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(error,[self check401And403WithObject:responseObject]);
- }];
- }
- - (void)requestWithDeleteparameters:(NSDictionary*)parameters complteteBlock:(CloudServiceCompletionBlock)complteteBlock
- {
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {
- complteteBlock(nil, self.networkErrorDict);
- return;
- }
-
- NSString *url = [mCloudService stringByAppendingString:mRequstAPI];
-
- HLog(@"\n------Delete请求连接->%@",url);
- HLog(@"\n------Delete请求体->%@",parameters);
-
- [manager DELETE:url
- parameters:parameters
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(nil,[self check401And403WithObject:responseObject]);
- }
- failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error,id _Nonnull responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(error,[self check401And403WithObject:responseObject]);
- }];
- }
- - (void)requestWithPutparameters:(NSDictionary*)parameters complteteBlock:(CloudServiceCompletionBlock)complteteBlock
- {
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {
- complteteBlock(nil, self.networkErrorDict);
- return;
- }
-
- NSString *url = [mCloudService stringByAppendingString:mRequstAPI];
- HLog(@"\n------Put请求连接->%@",url);
- HLog(@"\n------Put请求体->%@",parameters);
-
- [manager PUT:url
- parameters:parameters
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(nil,[self check401And403WithObject:responseObject]);
- }
- failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error,id _Nonnull responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(error,[self check401And403WithObject:responseObject]);
- }];
- }
- - (void)requestWithGetparameters:(NSDictionary*)parameters complteteBlock:(CloudServiceCompletionBlock)complteteBlock
- {
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {
- complteteBlock(nil,self.networkErrorDict);
- return;
- }
-
- NSString *url = [mCloudService stringByAppendingString:mRequstAPI];
- HLog(@"\n------Get请求连接->%@",url);
- // HLog(@"\n------Get请求体->%@",parameters);
- [manager GET:url parameters:parameters progress:^(NSProgress * _Nonnull downloadProgress) {
- ;
- }
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(nil,[self check401And403WithObject:responseObject]);
- }
- failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error,id _Nonnull responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(error,[self check401And403WithObject:responseObject]);
- }];
- }
- - (void)requestWithPatchparameters:(NSDictionary*)parameters complteteBlock:(CloudServiceCompletionBlock)complteteBlock
- {
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {
- complteteBlock(nil, self.networkErrorDict);
- return;
- }
-
- NSString *url = [mCloudService stringByAppendingString:mRequstAPI];
- // HLog(@"\n------Get请求连接->%@",url);
- // HLog(@"\n------Get请求体->%@",parameters);
- [manager PATCH:url
- parameters:parameters
- success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(nil,[self check401And403WithObject:responseObject]);
- }
- failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- complteteBlock(error,[self check401And403WithObject:responseObject]);
- }];
- }
- #pragma mark hxd 重新封装 afnetwork get 请求
- - (void)commonGetCanWithOutTokenCallBackUrl:(NSString *)url Parameters:(NSDictionary *_Nullable)dic success:(Success)success failure:(Faild)faildStr
- {
- ////
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- url = [NSString stringWithFormat:@"%@%@",CloudService,url];
- // if ([url rangeOfString:AppVersionCheckAPI].location != NSNotFound) {
- // url = [url stringByReplacingOccurrencesOfString:@"https" withString:@"http"];
- // }
-
- [manager GET:url parameters:dic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- HLog(@"接口名称:%@,返回:%@,\n ",url,responseObject);
- success([self check401And403WithObject:responseObject]);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- faildStr(error);
- }];
- }
- - (void)CommonGetWithCallBackCode:(NSString *)code Parameters:(NSDictionary *_Nullable)dic success:(Success)success failure:(Faild)faildStr
- {
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
-
- url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
-
- NSDictionary *dictLogin = [self getLoginInfo];
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- }
- else
- {
- //用户协议和隐私协议无需登录也可返回数据 //蜂芒开关 无需登录也可返回数据
- if ([code rangeOfString:@"/api/public/v4/agreement/content?agreementCoding=XYPZYHXY2002"].location != NSNotFound || [code rangeOfString:@"/api/public/v4/agreement/content?agreementCoding=XYPZYSXY2001"].location != NSNotFound) {
-
- }
- else
- {//获取维护系统公告与否时候特殊处理
- NSDictionary *responseObject = @{@"status" : @(6013), @"msg" : @"设备已在别处登录", @"data" : @""};
- success(responseObject);
- [self logout];
- [self showLoginOutTip:MSG];
- return;
- }
- }
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- HLog(@"接口名称:%@,\n 参数:%@\n",code,dic);
- [manager GET:url parameters:dic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- HLog(@"接口名称:%@,返回:%@,\n ",code,responseObject);
- success([self check401And403WithObject:responseObject]);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- faildStr(error);
- }];
- }
- #pragma mark hxd 重新封装 afnetwork post 请求
- - (void)CommonPostCallBackCode:(NSString*)code Parameters:(NSDictionary *_Nullable)dict success:(Success)success failure:(Faild)failure
- {
- HLog(@"接口名称:%@,\n 参数:%@\n",code,dict);
-
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
-
- NSDictionary *dictLogin = [self getLoginInfo];
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
- // HLog(@"URL:%@---Params:%@---token:%@", url, dict, tokenStr);
- }
- else
- {
- NSDictionary *responseObject = @{@"status" : @(6013), @"msg" : @"设备已在别处登录", @"data" : @""};
-
- mainBlock(^{
- success(responseObject);
- [self showLoginOutTip:MSG];
- });
-
- return;
- }
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- // // RSA签名
- // if ([url containsString:GetOrderNumberAPI] ||
- // [url containsString:STARCOINPAYAPI] ||
- // [url containsString:GETAIRPAYCONNECTIONAPI] ||
- // [url containsString:GETWXPAYCONNECTIONAPI]) {
- //
- // NSString *jsonStr = [RSATool sortArrWithDictionary:dict];
- // NSString *signStr = [RSATool RSASignEncrypt:jsonStr key:Const_Pay_PrivateKey];
- // signStr = [RSATool deleteNewlineCharactersWithString:signStr];
- // if (signStr.length == 0) {
- // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
- // [self CommonPostCallBackCode:code Parameters:dict success:success failure:failure];
- // });
- // return;
- // }
- // [manager.requestSerializer setValue:signStr forHTTPHeaderField:@"sign"];
- //
- // }else { // 清空签名
- [manager.requestSerializer setValue:@"" forHTTPHeaderField:@"sign"];
- // }
-
- [manager POST:url parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- HLog(@"接口名称:%@ 接口返回:%@,\n ",code,responseObject);
-
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- success([self check401And403WithObject:responseObject]);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- failure(error);
- }];
- }
- - (void)CommonPostCallBackCode:(NSString*)code Params:(id)dict success:(Success)success failure:(Faild)failure
- {
- HLog(@"接口名称:%@,\n 参数:%@\n",code,dict);
-
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
-
- NSDictionary *dictLogin = [self getLoginInfo];
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
- // HLog(@"URL:%@---Params:%@---token:%@", url, dict, tokenStr);
- }
- else
- {
- NSDictionary *responseObject = @{@"status" : @(6013), @"msg" : @"设备已在别处登录", @"data" : @""};
-
- mainBlock(^{
- success(responseObject);
- [self showLoginOutTip:MSG];
- });
-
- return;
- }
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- [manager POST:url parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- HLog(@"接口名称:%@ 接口返回:%@,\n ",code,responseObject);
-
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- success([self check401And403WithObject:responseObject]);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- failure(error);
- }];
- }
- - (void)commonPostCanWithOutTokenCallBackCode:(NSString*)code Parameters:(NSDictionary*)dict success:(Success)success failure:(Faild)failure
- {
- HLog(@"接口名称:%@,\n 参数:%@\n",code,dict);
-
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
-
- NSDictionary *dictLogin = [self getLoginInfo];
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
- // HLog(@"URL:%@---Params:%@---token:%@", url, dict, tokenStr);
- }
-
- // if ([code isEqualToString:RegAPI] && [[dict allKeys] containsObject:@"registerTime"]){
- // NSString *timeStr = [dict objectForKey:@"registerTime"];
- // NSMutableString *data1 = [RSATool sha256_64:[@"Register_SZX_2023:" stringByAppendingString:timeStr]];
- // [manager.requestSerializer setValue:data1 forHTTPHeaderField:@"registerSign"];
- // }
-
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
- [manager POST:url parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
- HLog(@"接口名称:%@ 接口返回:%@,\n ",code,responseObject);
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- success([self check401And403WithObject:responseObject]);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- failure(error);
- }];
- }
- #pragma mark hxd 重新封装 afnetwork put 请求
- - (void)CommonPutCallBackCode:(NSString*)code Parameters:(NSDictionary*)dict success:(Success)success failure:(Faild)failure
- {
- HLog(@"接口名称:%@,\n 参数:%@\n",code,dict);
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
-
- NSDictionary *dictLogin = [self getLoginInfo];
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
- // HLog(@"URL:%@---Params:%@---token:%@", url, dict, tokenStr);
- }
- else
- {
- NSDictionary *responseObject = @{@"status" : @(6013), @"msg" : @"设备已在别处登录", @"data" : @""};
-
- mainBlock(^{
- success(responseObject);
- [self showLoginOutTip:MSG];
- });
-
- return;
- }
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
- [manager PUT:url parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
- HLog(@"接口返回:%@,\n ",responseObject);
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- success([self check401And403WithObject:responseObject]);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- failure(error);
- }];
- }
- - (void)commonPutCanWithoutTokenCallBackCode:(NSString*)code Parameters:(NSDictionary*)dict success:(Success)success failure:(Faild)failure
- {
- HLog(@"接口名称:%@,\n 参数:%@\n",code,dict);
-
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- [manager PUT:url parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
- HLog(@"接口返回:%@,\n ",responseObject);
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- success([self check401And403WithObject:responseObject]);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- failure(error);
- }];
- }
- #pragma mark hxd 重新封装 afnetwork delete 请求
- - (void)CommonDeleteCallBackCode:(NSString*)code Parameters:(NSDictionary *_Nullable)dict success:(Success)success failure:(Faild)failure
- {
- HLog(@"接口名称:%@,\n 参数:%@\n",code,dict);
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
-
- NSDictionary *dictLogin = [self getLoginInfo];
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
- // HLog(@"URL:%@---Params:%@---token:%@", url, dict, tokenStr);
- }
- else
- {
- NSDictionary *responseObject = @{@"status" : @(6013), @"msg" : @"设备已在别处登录", @"data" : @""};
-
- mainBlock(^{
- success(responseObject);
- [self showLoginOutTip:MSG];
- });
-
- return;
- }
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- [manager DELETE:url parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
- HLog(@"接口返回:%@,\n ",responseObject);
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- success([self check401And403WithObject:responseObject]);
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- failure(error);
- }];
- }
- #pragma - mark 证书相关
- - (AFSecurityPolicy*)customSecurityPolicy
- {
- // // /先导入证书
- // NSString *cerName = @"newrelease";
- // if ([@"https://client.phone.androidscloud.com" isEqualToString:CloudService])
- // {
- // cerName = @"newrelease";
- // }
- // else if ([@"https://prese.phone.androidscloud.com" isEqualToString:CloudService])
- // {
- // cerName = @"newrelease";
- // }
- // NSString *cerPath = [[NSBundle mainBundle] pathForResource:cerName ofType:@"cer"];//证书的路径
- // NSData *certData = [NSData dataWithContentsOfFile:cerPath];
-
- // AFSSLPinningModeCertificate 使用证书验证模式、、、//AFSSLPinningModeNone 不使用SSLPinning //AFSSLPinningModeCertificate 使用SSLPinning
- AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
-
- // if ([@"https://test.androidscloud.com" isEqualToString:CloudService])
- // {
- // securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
- // }
- // else if ([@"https://pre.androidscloud.com" isEqualToString:CloudService])
- // {
- // securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
- // }
- // else if ([@"https://a.androidscloud.com" isEqualToString:CloudService])
- // {
- // securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
- // }
-
- // allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO
- // 如果是需要验证自建证书,需要设置为YES
- securityPolicy.allowInvalidCertificates = NO;
- //validatesDomainName 是否需要验证域名,默认为YES;
- //假如证书的域名与你请求的域名不一致,需把该项设置为NO;如设成NO的话,即服务器使用其他可信任机构颁发的证书,也可以建立连接,这个非常危险,建议打开。
- //置为NO,主要用于这种情况:客户端请求的是子域名,而证书上的是另外一个域名。因为SSL证书上的域名是独立的,假如证书上注册的域名是www.google.com,那么mail.google.com是无法验证通过的;当然,有钱可以注册通配符的域名*.google.com,但这个还是比较贵的。
- //如置为NO,建议自己添加对应域名的校验逻辑。
- securityPolicy.validatesDomainName = YES;
-
- // securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:certData, nil];
-
- return securityPolicy;
- }
- // 清空Cookie
- - (void)clearCookies {
-
- NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
- NSArray *cookieArray = [NSArray arrayWithArray:[cookieJar cookies]];
- for(id obj in cookieArray)
- {
- [cookieJar deleteCookie:obj];
- }
- }
- #pragma mark 云手机列表缓存信息
- - (void)setCloudPhoneListModel:(CloudPhoneListModel *)cloudPhoneListModel {
-
- _cloudPhoneListModel = cloudPhoneListModel;
-
- // 1、保存或更新云手机列表缓存数据
- // [HWDataManager saveCloudPhoneList];
- }
- #pragma mark 直接使用外部链接请求数据 请求
- - (void)commonGetWithUrl:(NSString *)url Parameters:(NSDictionary *_Nullable)dic success:(Success)success failure:(Faild)faildStr
- {
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- HLog(@"接口名称:%@,\n 参数:%@\n",url,dic);
-
- [manager GET:url parameters:dic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,@"",[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- HLog(@"接口名称:%@,返回:%@,\n ",url,responseObject);
- success([self check401And403WithObject:responseObject]);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[responseObject description]]];
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- faildStr(error);
- }];
- }
- //获取登录信息
- - (NSDictionary *)getLoginInfo {
- NSDictionary *loginInfoDict = [HWDataManager getObjectWithKey:Const_HWLoginDictionary];
-
- //只获取一次token 上报频繁调用获取token会奔溃)
- if (loginInfoDict && [[loginInfoDict allKeys] containsObject:@"token"])
- {
- if ([HWDataManager getStringWithKey:@"XD_getLoginInfo"].length == 0) {
- NSString *tokenStr = [loginInfoDict objectForKey:@"token"];
- [HWDataManager setStringWithKey:@"XD_getLoginInfo" value:tokenStr];
- }
- }
-
- return loginInfoDict;
- }
- //登出操作
- - (BOOL)logout
- {
- [[NSNotificationCenter defaultCenter] postNotificationName:NotNameAlertClose object:self];
-
- //清除广告的token,重登时,重新获取广告token
- [HWDataManager setStringWithKey:@"XD_getLoginInfo" value:@""];
-
- NSDictionary *dictLogin = self.getLoginInfo;
- [[NSNotificationCenter defaultCenter] postNotificationName:WebSocketDisconnectNotification object:dictLogin];
-
- BOOL resultSetLoginInfo = NO;
- if ([self setLoginInfo:[NSDictionary new]])
- {
- resultSetLoginInfo = YES;
- }
- else
- {
- if ([self setLoginInfo:[NSDictionary new]])
- {
- resultSetLoginInfo = YES;
- }
- else
- {
- resultSetLoginInfo = [self setLoginInfo:[NSDictionary new]];
- }
- }
- [self.useBaseInfo removeAllObjects];
- self.useBaseInfo = nil;
- [self.cloudPhoneListModel.diskInfo removeAllObjects];
- self.cloudPhoneListModel.diskInfo = nil;
- [self.useLeftInfo removeAllObjects];
- self.useLeftInfo = nil;
- [self.manager.requestSerializer setValue:nil forHTTPHeaderField:@"Authorization"];
- [[NSNotificationCenter defaultCenter] postNotificationName:ChangeAccountNotification object:nil];
-
- //清空保存的账号
- [HWDataManager setStringWithKey:Const_HWAccountPhoneNumber value:@""];
-
- return resultSetLoginInfo;
- }
- #pragma - mark 设置用户登录信息
- //设置登录信息
- - (BOOL)setLoginInfo:(NSDictionary *)loginInfo {
- // 保存登录字典
- [HWDataManager setObjectWithKey:Const_HWLoginDictionary value:loginInfo];
- // 保存登录账号
- NSString *number = loginInfo[@"account"];
- [HWDataManager setStringWithKey:Const_HWAccountPhoneNumber value:number];
-
- return YES;
- }
- //保存当前设备漂浮窗位置信息
- - (void)saveDviceDriftInfoWith:(CGFloat)pointx ponitY:(CGFloat)ponity hidden:(BOOL)hidden deviceSN:(NSString *)sn
- {
- NSDictionary *dictLogin = [[UseAccountManage shareInstance] getLoginInfo];
-
- if ([[dictLogin allKeys] containsObject:@"account"])
- {
- NSString *account = [dictLogin objectForKey:@"account"];
-
- /*数据保存到本地*/
- NSString *deviceDriftPath = [HWDataManager pathForDeviceDriftWithAccount:account sn:sn];
-
- NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
- [NSNumber numberWithFloat:pointx],@"pointx",
- [NSNumber numberWithFloat:ponity],@"pointy",
- [NSNumber numberWithBool:hidden],@"hidden",nil];
-
- [dict writeToFile:deviceDriftPath atomically:YES];
- }
- }
- //保存当前设备sn信息
- - (NSDictionary *)getDviceDriftInfoWithdeviceSN:(NSString *)sn
- {
- NSDictionary *dictLogin = [[UseAccountManage shareInstance] getLoginInfo];
-
- NSDictionary *dict = nil;
-
- if ([[dictLogin allKeys] containsObject:@"account"])
- {
- NSString *account = [dictLogin objectForKey:@"account"];
-
- /*数据保存到本地*/
- NSString *deviceDriftPath = [HWDataManager pathForDeviceDriftWithAccount:account sn:sn];
-
- dict = [[NSDictionary alloc] initWithContentsOfFile:deviceDriftPath];
- }
-
- return dict;
- }
- - (void)extensionCloudPhoneToGetDeviceStatesWithDeviceId:(NSInteger )deviceId coordinatesLat:(NSString *)coordinatesLat coordinatesLng:(NSString *)coordinatesLng success:(Success)success faild:(Faild)faildStr
- {
- self.mCloudService = CloudService;
-
- self.mRequstAPI = GETDEVICESTATESAPI;
-
- NSDictionary *parameters;
-
- NSDictionary *dictLogin = [self getLoginInfo];
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [self.manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- }
- else
- {
- return;
- }
-
- NSString *userOperatorNetwork = [iPhone getCarrierInfo];
-
- parameters = [[NSDictionary alloc] initWithObjectsAndKeys:[NSNumber numberWithInt:1],@"deviceStatus",[NSNumber numberWithInteger:deviceId],@"userCardId", coordinatesLat, @"coordinatesLat", coordinatesLng, @"coordinatesLng", userOperatorNetwork, @"userOperatorNetwork", nil];
-
- [self requestWithPostparameters:parameters complteteBlock:^(NSError *error , id data){
- [[VclCrash sharedInstance] writeContent:[NSString stringWithFormat:@"%s__error = %@_data = %@__",__FUNCTION__,[error description],[data description]]];
-
- if (error)
- {
- faildStr(error);
- }
- else
- {
- success(data);
- }
- }];
- }
- //获取云手机推流页面指令通道URL
- - (NSString *)getInstructionsChannelUrlWithInternetHttp:(NSString *)internetHttp localIp:(NSString *)localIp cardToken:(NSString *)cardToken
- {
- NSDictionary *dictLogin = [[UseAccountManage shareInstance] getLoginInfo];
-
- if ([[dictLogin allKeys] containsObject:@"userName"]) {
-
- NSString *tokenStr = @"";
- if ([[dictLogin allKeys] containsObject:@"token"]) {
- tokenStr = [dictLogin objectForKey:@"token"];
- }
- NSString *url = [NSString stringWithFormat:@"ws://%@/businessChannel?cardIp=%@&token=%@&type=directives",internetHttp,localIp,cardToken];
- return url;
- }else
- {
- return nil;
- }
- }
- //获取云手机推流页面业务通道URL
- - (NSString *)getBusinessChannelUrlWithInternetHttp:(NSString *)internetHttp localIp:(NSString *)localIp cardToken:(NSString *)cardToken
- {
- NSDictionary *dictLogin = [[UseAccountManage shareInstance] getLoginInfo];
-
- if ([[dictLogin allKeys] containsObject:@"userName"]) {
-
- NSString *tokenStr = @"";
- if ([[dictLogin allKeys] containsObject:@"token"]) {
- tokenStr = [dictLogin objectForKey:@"token"];
- }
- NSString *url = [NSString stringWithFormat:@"ws://%@/businessChannel?cardIp=%@&token=%@&type=business",internetHttp,localIp,cardToken];
- return url;
- }else{
- return nil;
- }
- }
- /**
- * @brief 埋点
- *
- * @param array 参数,埋点数据
- *
- *
- */
- - (void)extensionPublicToBuryPointPostCallBackCode:(NSString*)code Parameters:(NSMutableArray*)array success:(Success)success failure:(Faild)failure
- {
- HLog(@"接口名称:%@,\n 参数:%@\n",code,array);
- NSString *url = [NSString stringWithFormat:@"%@%@",CloudService,code];
- NSDictionary *dictLogin = [self getLoginInfo];
- // 用户登录
- if (dictLogin && [[dictLogin allKeys] containsObject:@"token"])
- {
- NSString *tokenStr = [dictLogin objectForKey:@"token"];
- [self.manager.requestSerializer setValue:tokenStr forHTTPHeaderField:@"Authorization"];
- }
-
- [self.manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
- //设备类型 ,1:Android、2:ios、3:PC,必传
- [self.manager.requestSerializer setValue:@"2" forHTTPHeaderField:@"platform"];
- //渠道,必传
- [self.manager.requestSerializer setValue:@"app store" forHTTPHeaderField:@"channel"];
- // app版本
- NSString *version = [NSString stringWithFormat:@"v%@", [iPhone appVersion]];
- [self.manager.requestSerializer setValue:version forHTTPHeaderField:@"versionName"];
-
- if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
- {// 无网络状态
- success(self.networkErrorDict);
- return;
- }
-
- [self.manager POST:url parameters:array progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
-
- HLog(@"接口名称:%@ 接口返回:%@,\n ",code,responseObject);
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- success(responseObject);
-
- } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id _Nonnull responseObject) {
-
- if ([self isDidHandelCustomStatusFun:responseObject task:task]) {
- return;
- }
-
- failure(error);
-
- }];
- }
- @end
|