277 lines
11 KiB
Objective-C
277 lines
11 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"];
|
|
}
|
|
|
|
[manager.requestSerializer setValue:@"ios" forHTTPHeaderField:@"device"];
|
|
|
|
switch (requestMethod) {
|
|
case RequestGetMethod:
|
|
|
|
{
|
|
[manager GET:url parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
|
|
|
|
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
|
|
if (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) {
|
|
|
|
if (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.requestSerializer setValue:@"ios" forHTTPHeaderField:@"device"];
|
|
[manager POST:url parameters:param progress:^(NSProgress * _Nonnull uploadProgress) {
|
|
|
|
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
|
|
|
|
if (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"];
|
|
}
|
|
[manager.requestSerializer setValue:@"ios" forHTTPHeaderField:@"device"];
|
|
[requst setValue:@"ios" forHTTPHeaderField:@"device"];
|
|
|
|
[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) {
|
|
if (responseObject) {
|
|
NSDictionary *responseDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
|
|
|
|
if (completionHandler) {
|
|
completionHandler(response,responseDic,error);
|
|
}
|
|
}else{
|
|
if (completionHandler) {
|
|
completionHandler(nil,nil,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.requestSerializer setValue:@"ios" forHTTPHeaderField:@"device"];
|
|
|
|
|
|
[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) {
|
|
if (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"];
|
|
}
|
|
[manager.requestSerializer setValue:@"ios" forHTTPHeaderField:@"device"];
|
|
|
|
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
|