XWHTTPTool.m
5.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//
// 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 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 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 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 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