GiGaMaskTime/GIGA/Common/GiGaNetTool/GiGaNetManager.m

259 lines
10 KiB
Objective-C

//
// GiGaNetManager.m
// GIGA
//
// Created by lianxiang on 2018/8/15.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import "GiGaNetManager.h"
#import "AFNetworking.h"
#import "GiGaServerConfig.h"
#import "GiGaUserDefault.h"
#import "GIGaUserFileHelper.h"
@interface GiGaNetManager()
@end
@implementation GiGaNetManager
+ (void)requestMethod:(RequestMethod)requestMethod Url:(NSString *)url params:(NSDictionary *)params responseBlock:(responseBlock)block{
// NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
// NSURL *baseUrl = [NSURL URLWithString:[GiGaServerConfig getMainUrl]];
// AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] initWithBaseURL:baseUrl sessionConfiguration:configuration];
AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] init];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
NSString *token = [GiGaUserDefault getCurentToken];
if (token) {
[manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
}
switch (requestMethod) {
case RequestGetMethod:
{
[manager GET:url parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@", responseObject);
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
block(dict, headerFields, nil);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
block(nil, headerFields, error);
}];
}
break;
case RequestPostMethod:
{
[manager POST:url parameters:params progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dict);
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
block(dict, headerFields, nil);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
block(nil, headerFields, error);
}];
}
break;
default:
break;
}
}
+(void)request:(NSString *)url params:(NSDictionary *)param
success:(void (^)(id response))success
failure:(void (^)(NSError *err))failure
{
AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] init];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
[manager POST:url parameters:param progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dict);
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
if (failure) {
failure(error);
}
}];
}
//body传参数
+(void)userbodyRequest:(NSString *)url params:(NSDictionary *)param completionHandler:(nullable void (^)(NSURLResponse *response,NSDictionary *resDic, NSError * _Nullable error))completionHandler
{
//NSString *jsonStr = [GiGaHelper dictionaryToJson:param];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURL *baseUrl = [NSURL URLWithString:[GiGaServerConfig getMainUrl]];
AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] initWithBaseURL:baseUrl sessionConfiguration:configuration];
manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"application/json",@"text/json", @"text/javascript",@"text/html",@"text/plain",nil]];
NSString *token = [GiGaUserDefault getCurentToken];
NSMutableURLRequest *requst = [[AFJSONRequestSerializer serializer]
requestWithMethod:@"POST" URLString:url parameters:nil error:nil];
requst.timeoutInterval = 20.f;
if (token) {
[manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
[requst setValue:token forHTTPHeaderField:@"token"];
}
[requst setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requst setValue:@"application/json" forHTTPHeaderField:@"Accept"];
if (param && param.count > 0){
NSError *parseError =nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:param options:NSJSONWritingPrettyPrinted error:&parseError];
// NSData *jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
[requst setHTTPBody:jsonData];
}
NSURLSessionDataTask *task = [manager dataTaskWithRequest:requst uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
} downloadProgress:^(NSProgress * _Nonnull downloadProgress) {
} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
NSDictionary *responseDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
if (completionHandler) {
completionHandler(response,responseDic,error);
}
}];
[task resume];
}
//上传1张
+(void)uploadImage:(NSString *)url
imgData:(NSData *)imgData
parms:(NSDictionary *)parms
responseBlock:(responseBlock)block{
AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] init];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
NSString *token = [GiGaUserDefault getCurentToken];
if (token) {
[manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
}
[manager POST:url parameters:parms constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
//上传时使用当前的系统事件作为文件名
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMddHHmmss";
NSString *str = [formatter stringFromDate:[NSDate date]];
NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];
//服务器上传文件的字段和类型
[formData appendPartWithFileData:imgData name:@"file" fileName:fileName mimeType:@"image/jpeg"];
NSString *userId = [GiGaUserDefault getCurentUserId];
if (!userId) {
userId = @"avator123";
}
[formData appendPartWithFormData:imgData name:userId];
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dict);
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
if (block) {
block(dict, headerFields, nil);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
if (block) {
block(nil, headerFields, error);
}
}];
}
//上传多张
+(void)uploadImage:(NSString *)url
imageNames:(NSArray *)imageNames
parms:(NSDictionary *)parms
responseBlock:(responseBlock)block
{
AFHTTPSessionManager*manager=[[AFHTTPSessionManager alloc] init];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
NSString *token = [GiGaUserDefault getCurentToken];
if (token) {
[manager.requestSerializer setValue:token forHTTPHeaderField:@"token"];
}
NSString *fullurl = [NSString stringWithFormat:@"%@%@",[GiGaServerConfig getMainUrl],url];
[manager POST:fullurl parameters:parms constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
for (NSUInteger i= 0; i < imageNames.count; i ++) {
NSString *fileName = [NSString stringWithFormat:@"%@.png", imageNames[i]];
//服务器上传文件的字段和类型
UIImage *image =[GIGaUserFileHelper getUserFeedbackImag:imageNames[i]] ;
NSData *imgData = UIImagePNGRepresentation(image);
[formData appendPartWithFileData:imgData name:@"file" fileName:fileName mimeType:@"image/png"];
[formData appendPartWithFormData:imgData name:fileName];
}
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dict);
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
if (block) {
block(dict, headerFields, nil);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSDictionary *headerFields = [(NSHTTPURLResponse *)task.response allHeaderFields];
if (block) {
block(nil, headerFields, error);
}
}];
}
@end