XWHTTPTool.m 7.98 KB
//
//  XWHTTPTool.m
//  CNLiveScioLive
//
//  Created by CNLive-zxw on 2018/9/18.
//  Copyright © 2018年 CNLive. All rights reserved.
//

#import "XWHTTPTool.h"
//网络请求管理者单例
@interface XWAFHTTPSessionManager : AFHTTPSessionManager
+ (AFHTTPSessionManager *)shareManager;

@end

@implementation XWAFHTTPSessionManager
+ (AFHTTPSessionManager *)shareManager{
    static AFHTTPSessionManager *manager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        manager = [AFHTTPSessionManager manager];
        manager.responseSerializer = [AFJSONResponseSerializer serializer];
        manager.requestSerializer = [AFHTTPRequestSerializer serializer];
        manager.requestSerializer.timeoutInterval = 10;
        manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"text/plain",@"application/json",@"text/json",@"text/javascript", nil];
    });
    return manager;
}

@end

@implementation XWHTTPTool
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ (void)GET:(NSString *)url params:(NSDictionary *)params success:(XWRequestSuccess)success failure:(XWRequestFailure)failure
{
//    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//    manager.responseSerializer = [AFJSONResponseSerializer serializer];
//    manager.requestSerializer=[AFJSONRequestSerializer serializer];
//    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"text/plain",@"application/json",@"text/json",@"text/javascript", nil];
    [[XWAFHTTPSessionManager shareManager] GET:url parameters:params headers:nil progress:NULL success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        !success ? : success(responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        !failure ? : failure(error);
    }];
    
//    [[XWAFHTTPSessionManager shareManager] GET:url parameters:params success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
//        !success ? : success(responseObject);
//    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//        !failure ? : failure(error);
//    }];
}

+ (void)POST:(NSString *)url params:(NSDictionary *)params success:(XWRequestSuccess)success failure:(XWRequestFailure)failure
{
//    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//    manager.responseSerializer = [AFJSONResponseSerializer serializer];
//    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
//    manager.requestSerializer.timeoutInterval = 10;
//    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"text/plain",@"application/json",@"text/json",@"text/javascript", nil];
    
    [[XWAFHTTPSessionManager shareManager] POST:url parameters:params headers:nil progress:NULL success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        !success ? : success(responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        !failure ? : failure(error);
    }];
    
//    [[XWAFHTTPSessionManager shareManager] POST:url parameters:params success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
//        !success ? : success(responseObject);
//    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//        !failure ? : failure(error);
//    }];
}
+ (void)UploadImage:(NSString *)url params:(NSDictionary *)params fileData:(NSMutableArray<UIImage *> *)imageObject success:(XWRequestSuccess)success failure:(XWRequestFailure)failure{
//    AFHTTPSessionManager *uploadManager = [AFHTTPSessionManager manager];
//    uploadManager.requestSerializer = [AFHTTPRequestSerializer serializer];
//    uploadManager.responseSerializer = [AFJSONResponseSerializer serializer];
//    uploadManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"text/plain",@"application/json",@"text/json",@"text/javascript",@"image/jpeg",@"image/png",@"application/octet-stream",@"multipart/form-data", nil];
    
    
    //上传图片
    [[XWAFHTTPSessionManager shareManager] POST:url parameters:params headers:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        for (int i = 0; i < imageObject.count; i++) {
            
            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
            formatter.dateFormat =@"yyyyMMddHHmmss";
            NSString *str = [formatter stringFromDate:[NSDate date]];
            NSString *fileName = [NSString stringWithFormat:@"%@%d.jpg",str,i];
            UIImage *image = imageObject[i];
            NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
            //上传的参数(上传图片,以文件流的格式)
            [formData appendPartWithFileData:imageData
                                        name:[NSString stringWithFormat:@"image_%d",i]
                                    fileName:fileName
                                    mimeType:@"image/jpeg"];
            
        }
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        !success ? : success(responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        !failure ? : failure(error);
    }];
    
//    //上传图片
//    [[XWAFHTTPSessionManager shareManager] POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
//        for (int i = 0; i < imageObject.count; i++) {
//
//            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//            formatter.dateFormat =@"yyyyMMddHHmmss";
//            NSString *str = [formatter stringFromDate:[NSDate date]];
//            NSString *fileName = [NSString stringWithFormat:@"%@%d.jpg",str,i];
//            UIImage *image = imageObject[i];
//            NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
//            //上传的参数(上传图片,以文件流的格式)
//            [formData appendPartWithFileData:imageData
//                                        name:[NSString stringWithFormat:@"image_%d",i]
//                                    fileName:fileName
//                                    mimeType:@"image/jpeg"];
//
//        }
//    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
//        !success ? : success(responseObject);
//    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//        !failure ? : failure(error);
//    }];
}
//上传文件
+ (void)Uploadfile:(NSString *)url params:(NSDictionary *)params File:(NSString *)file success:(XWRequestSuccess)success failure:(XWRequestFailure)failure{
    
    //上传文件
    [[XWAFHTTPSessionManager shareManager] POST:url parameters:params headers:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        //上传的参数
        [formData appendPartWithFileURL:[NSURL fileURLWithPath:file] name:@"file" error:nil];
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        !success ? : success(responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        !failure ? : failure(error);
    }];
    
//    //上传文件
//    [[XWAFHTTPSessionManager shareManager] POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
//        //上传的参数
//        [formData appendPartWithFileURL:[NSURL fileURLWithPath:file] name:@"file" error:nil];
//    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
//        !success ? : success(responseObject);
//    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//        !failure ? : failure(error);
//    }];
}
#pragma clang diagnostic pop

@end