ifish/Ifish/Utinitys/IfishHttpRequest/AFNOHeaderHttpTool.m

449 lines
16 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// AFNOHeaderHttpTool.m
// Ifish
//
// Created by imac on 16/10/27.
// Copyright © 2016年 lianxiang. All rights reserved.
//
#import "AFNOHeaderHttpTool.h"
#import "AFNetworking.h"
#import "SVProgressHUD.h"
#import "IfishDeviceInfo.h"
#define ContentType @"text/html"
@implementation AFNOHeaderHttpTool
- (instancetype)init
{
self = [super init];
if (self) {
// _manager = [AFHTTPSessionManager manager];
// //请求超时时间为15秒
// _manager.requestSerializer.timeoutInterval = 15;
// _manager.requestSerializer = [AFJSONRequestSerializer serializer];
// _manager.responseSerializer = [AFJSONResponseSerializer serializer];
// // // 内容类型
// _manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil];
}
return self;
}
+ (AFNOHeaderHttpTool *)sharedInstance
{
static AFNOHeaderHttpTool *_instance = nil;
static dispatch_once_t once;
dispatch_once(&once, ^{
_instance = [[self alloc] init];
});
return _instance;
}
-(NSString *)getRequestPath:(NSString *)urlPath keysArray:(NSArray *)keys valuesArray:(NSArray *)values{
urlPath = [urlPath stringByAppendingString:@"?"];
for (int i=0; i<keys.count; i++) {
NSString *keyValue = [[NSString alloc]initWithFormat:@"%@",values[i]];
NSString * newValue = [keyValue stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
if(i==keys.count-1)
urlPath = [urlPath stringByAppendingString:[NSString stringWithFormat:@"%@=%@",keys[i],newValue]];
else
urlPath = [urlPath stringByAppendingString:[NSString stringWithFormat:@"%@=%@&",keys[i],newValue]];
}
return urlPath;
}
-(NSMutableURLRequest *)getUrlRequestWithPath:(NSString *)urlString keysArray:(NSArray *)keys valuesArray:(NSArray *)values{
// urlString = [Api_DomainName stringByAppendingString:urlString];
NSString *newPath = @"";
if (keys==nil) {
newPath = urlString;
}else{
newPath = [self getRequestPath:urlString keysArray:keys valuesArray:values];
}
NSLog(@"requestUrl = %@",newPath);//请求地址
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setTimeoutInterval:15];//超时时间15秒
[urlRequest setHTTPMethod:@"POST"];//请求方式post
NSString *bodyStr;
if (keys==nil) {
bodyStr = [newPath substringFromIndex:urlString.length];
}else
bodyStr = [newPath substringFromIndex:urlString.length+1];//请求体封装(有?的情况)
NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
urlRequest.HTTPBody = bodyData;
return urlRequest;
}
//POST请求
//-(void) postRequestWihtUrl:(NSString *)url
// keys:(NSArray *)keys
// values:(NSArray *)values
// success:(WBCallBackSuccess)success
// failure:(WBCallBackFailed)failure
//{
//
// NSURLSession *session = [NSURLSession sharedSession];
// NSMutableURLRequest *urlRequest = [self getUrlRequestWithPath:url keysArray:keys valuesArray:values];
// NSURLSessionDataTask *sessionDataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
// if ([data length] >0 &&
// error == nil){
// [SVProgressHUD dismissWithDelay:0.3];
// id result=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
// NSLog(@"获取数据 resalut = %@",result);
// if ([result isKindOfClass:[NSDictionary class]]) {
//// NSString *resCode = [NSString stringWithFormat:@"%@",[result objectForKey:RESPONSE_CODE]];//状态码
//// //返回数据正确 ,则解析到数据接收内容
//// if([resCode integerValue]==kReqSuccess)
//// {
// /**
// 获取后台给定的正确码100做逻辑处理
// */
// dispatch_async(dispatch_get_main_queue(), ^{
// //直接显示成功信息
// success(result);
// });
//// }else{
//// /*
//// 获取后台给定的其他错误码,做逻辑处理(暂无数据等)
//// */
//// dispatch_async(dispatch_get_main_queue(), ^{
//// failure(result);
//// });
//// }
// }else{
// NSLog(@"json格式错误");
// }
// }else if ([data length] == 0 &&
// error == nil){
// //请求数据长度为0服务器返回数据内容问题
// [SVProgressHUD dismiss];
// }else if (error != nil){
// //反馈错误信息(网络连接失败(服务器关停)等信息)
// if (error) {
// [SVProgressHUD dismiss];
// }
// }
// }];
// [sessionDataTask resume];
//}
+(void) requestWihtMethod:(RequestType)
methodType url : (NSString *)url
params:(NSDictionary *)params
success:(void (^)(id response))success
failure:(void (^)(NSError *err))failure
{
// NSURL* baseURL = [NSURL URLWithString:DEV_IFISH_SERVER];
// //获得请求管理者
// AFHTTPRequestOperationManager*manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL];
AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager manager];
//此类中接口 无安全校验
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil];;
//#ifdef ContentType
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:ContentType];
//#endif
// manager.requestSerializer.HTTPShouldHandleCookies = YES;
switch (methodType) {
case RequestTypeGet:
{
//GET请求
[manager GET:url parameters:params
success:^(AFHTTPRequestOperation* operation, NSDictionary* responseObj) {
if (success) {
success(responseObj);
}
} failure:^(AFHTTPRequestOperation* operation, NSError* error) {
if (failure) {
failure(error);
}
}];
}
break;
case RequestTypePost:
{
//POST请求
[manager POST:url parameters:params
success:^(AFHTTPRequestOperation* operation, NSDictionary* responseObj) {
if (success) {
[SVProgressHUD dismiss];
success(responseObj);
}
} failure:^(AFHTTPRequestOperation* operation, NSError* error) {
if (failure){
[SVProgressHUD dismiss];
failure(error);
}
}];
}
break;
default:
break;
}
}
+(void)saveCustomIconWith:(NSNumber*)UserId
deviceId:(NSString*)deviceId
customIconName:(NSString*)customIconName
customShowName:(NSString*)customShowName
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure{
NSDictionary*para=@{
@"priId.userId":UserId,
@"priId.deviceId":deviceId,
@"customShowName":customShowName,
@"customIconName":customIconName
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:kSaveCustomIcon params:para success:success failure:failure];
}
+(void)getLookReportById:(NSString *)reportId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"reportId":reportId
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishgetLookReportById
params:para
success:success
failure:failure];
}
+(void)deleteDeviceCameraWith:(NSString *)cameraId
deiviceId:(NSString *)deiviceId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"cameraId":cameraId,
@"deviceId":deiviceId
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishdeleteDeviceCamera params:para success:success failure:failure];
}
+(void)kanHuKaiGuanWith:(NSString *)cameraId
userId:(NSString *)userId
status:(NSString *)status
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"cameraId":cameraId,
@"userId":userId,
@"status":status
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishOnOffLook
params:para
success:success
failure:failure];
}
+(void)deviceBindCameraWith:(NSString *)cameraId
userId:(NSNumber *)userId
deviceId:(DeviceModel *)device
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"cameraId":cameraId,
@"deviceId":device.deviceId,
@"userId": userId
};
NSMutableDictionary*paradic=[[NSMutableDictionary alloc]initWithDictionary:para];
if ([device.type isEqualToString:DECICE_TYPE_XUANDUO3F])
{
paradic[@"type"]=@"1";
}
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishdeviceBindCamera params:para success:success failure:failure];
}
+(void)getKanHuListWithShopsId:(NSString *)shopsUserId
firstResult:(NSString *)firstResult
pageSize:(NSString *)pageSize
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"shopsUserId":shopsUserId,
@"firstResult":firstResult,
@"pageSize":pageSize
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishlookList
params:para
success:success
failure:failure];
}
+(void)bindCameraWith:(NSString *)cameraId
userId:(NSNumber *)userId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"cameraId":cameraId,
@"userId":userId
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishBindCamera params:para success:success failure:failure];
}
+(void)setRemindWaterInfWith:(NSString*)deviceId
waterRemind:(NSString*)waterRemind
remindCycle:(NSString*)remindCycle
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
if ([deviceId isKindOfClass:[NSNumber class]])
{
NSString*devid=[NSString stringWithFormat:@"%@",deviceId];
deviceId=devid;
}
NSString*macid=[[deviceId componentsSeparatedByString:@"_"] firstObject];
NSString*deviceType=[[deviceId componentsSeparatedByString:@"_"] lastObject];
NSString*type=@"0";//0换水 1杀菌
if ([deviceType isEqualToString:@"3f"])
{
type=@"1";
}
NSDictionary*para=@{
@"deviceId":macid,
@"waterRemind":waterRemind,
@"remindCycle":remindCycle,
@"type":type
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:kSetRemindWaterInf params:para success:success failure:failure];
}
+(void)getRemindWaterInfwith:(NSString*)deviceId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"deviceId":deviceId,
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:kGetRemindWaterInf params:para success:success failure:failure];
}
+(void)scanCodeActiveCamea:(NSString *)cameraId
deiviceId:(NSString *)deiviceId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"cameraId":cameraId,
@"deviceId":deiviceId
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:JiHuoSheXiangTou
params:para
success:success
failure:failure];
}
+(void)getShopsStatus:(NSString *)shopsId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure{
NSDictionary*para=@{
@"shopsId":shopsId
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishGetShopsStatus
params:para
success:success
failure:failure];
}
+(void)xuanZeKanHuShangJia:(NSString *)shopsPhone
yongHuId:(NSNumber *)userId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"phoneNumber":shopsPhone,
@"userId":userId
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishChoiceShops
params:para
success:success
failure:failure];
}
+(void)sendReportWithUserId:(NSString * )userId
baoGaoHtmlName:(NSString *)fileName
reportId:(NSString *)reportId
success:(void (^)(id response))success
failure:(void (^)(NSError* err))failure
{
NSDictionary*para=@{
@"userId":userId,
@"fileName":fileName,
@"reportId":reportId
};
[AFNOHeaderHttpTool requestWihtMethod:RequestTypePost url:IfishSendReport
params:para
success:success
failure:failure];
}
-(NSDictionary *)getErrorDict:( NSError *)error
{
NSMutableDictionary * resalut = InitObject(NSMutableDictionary);
[resalut setObject:[NSString stringWithFormat:@"%ld",error.code] forKey:RESPONSE_CODE];
[resalut setObject:error.domain forKey:RESPONSE_MESSAGE];
return resalut;
}
@end