173 lines
6.7 KiB
Objective-C
173 lines
6.7 KiB
Objective-C
//
|
|
// QJNetWorking.m
|
|
// QinJiuTV
|
|
//
|
|
// Created by 秦九 on 2024/4/29.
|
|
//
|
|
|
|
#import "QJNetWorking.h"
|
|
|
|
@implementation QJNetWorking
|
|
|
|
+ (AFHTTPSessionManager *)sharedManager {
|
|
static AFHTTPSessionManager *manager;
|
|
static dispatch_once_t once;
|
|
dispatch_once(&once, ^{
|
|
manager = [AFHTTPSessionManager manager];
|
|
// manager.completionQueue = dispatch_queue_create("project.networking.queue", DISPATCH_QUEUE_SERIAL);
|
|
manager.requestSerializer = [AFJSONRequestSerializer serializer];
|
|
//说明接收格式为json格式
|
|
manager.responseSerializer = [AFJSONResponseSerializer serializer];
|
|
|
|
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
|
|
securityPolicy.validatesDomainName = NO;
|
|
securityPolicy.allowInvalidCertificates = YES;
|
|
manager.securityPolicy = securityPolicy;
|
|
|
|
manager.requestSerializer.HTTPShouldHandleCookies = YES;
|
|
manager.requestSerializer.timeoutInterval = 60;
|
|
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
|
|
((AFJSONResponseSerializer *)manager.responseSerializer).removesKeysWithNullValues = YES;
|
|
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];
|
|
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];
|
|
|
|
|
|
});
|
|
return manager;
|
|
}
|
|
|
|
+ (void)requestWithHTTPMethod:(HTTPMethod)method
|
|
URLString:(nonnull NSString *)URLString
|
|
parameters:(nullable NSDictionary *)parameters
|
|
success:(nullable void (^)(NSURLSessionDataTask * _Nonnull, id _Nullable))success
|
|
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable, NSError * _Nonnull))failure{
|
|
|
|
[self requestWithHTTPMethod:method
|
|
URLString:URLString
|
|
authorization:nil
|
|
parameters:parameters
|
|
success:success
|
|
failure:failure];
|
|
}
|
|
+ (void)requestWithHTTPMethod:(HTTPMethod)method
|
|
URLString:(nonnull NSString *)URLString
|
|
authorization:(nullable NSString *)authorization
|
|
parameters:(nullable NSDictionary *)parameters
|
|
success:(nullable void (^)(NSURLSessionDataTask * _Nonnull, id _Nullable))success
|
|
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable, NSError * _Nonnull))failure {
|
|
[self requestWithHTTPMethod:method
|
|
URLString:URLString
|
|
headers:@{@"Authorization":authorization}
|
|
parameters:parameters
|
|
success:success
|
|
failure:failure];
|
|
}
|
|
|
|
|
|
+ (void)requestWithHTTPMethod:(HTTPMethod)method
|
|
URLString:(nonnull NSString *)URLString
|
|
headers:(nullable NSDictionary *)headers
|
|
parameters:(nullable NSDictionary *)parameters
|
|
success:(nullable void (^)(NSURLSessionDataTask * _Nonnull, id _Nullable))success
|
|
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable, NSError * _Nonnull))failure {
|
|
|
|
AFHTTPSessionManager *manager = [QJNetWorking sharedManager];
|
|
|
|
for(NSString * key in headers.allKeys) {
|
|
NSString * value = headers[key];
|
|
if (value && value.length) [manager.requestSerializer setValue:value forHTTPHeaderField:key];
|
|
}
|
|
|
|
switch (method) {
|
|
case HTTPMethodGet: {
|
|
[manager GET:URLString
|
|
parameters:parameters
|
|
headers:nil
|
|
progress:nil
|
|
success:success
|
|
failure:failure];
|
|
break;
|
|
}
|
|
|
|
case HTTPMethodHead: {
|
|
[manager HEAD:URLString
|
|
parameters:parameters
|
|
headers:nil
|
|
success:^(NSURLSessionDataTask *_Nonnull task) { if (success) success(task,nil);}
|
|
failure:failure];
|
|
break;
|
|
}
|
|
|
|
case HTTPMethodPost: {
|
|
[manager POST:URLString
|
|
parameters:parameters
|
|
headers:nil
|
|
progress:nil
|
|
success:success
|
|
failure:failure];
|
|
break;
|
|
}
|
|
|
|
case HTTPMethodPut: {
|
|
[manager PUT:URLString
|
|
parameters:parameters
|
|
headers:nil
|
|
success:success
|
|
failure:failure];
|
|
break;
|
|
}
|
|
|
|
case HTTPMethodDelete: {
|
|
[manager DELETE:URLString
|
|
parameters:parameters
|
|
headers:nil
|
|
success:success
|
|
failure:failure];
|
|
break;
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
+ (void)postRequestWithURLString:(nonnull NSString *)URLString
|
|
parameters:(nullable NSDictionary *)parameters
|
|
constructingBodyWithBlock:(nullable void (^)(id <AFMultipartFormData> formData))block
|
|
progress:(nullable void (^)(NSProgress * _Nonnull))uploadProgress
|
|
success:(nullable void (^)(NSURLSessionDataTask * _Nonnull, id _Nullable))success
|
|
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable, NSError * _Nonnull))failure {
|
|
[self postRequestWithURLString:URLString
|
|
authorization:nil
|
|
parameters:parameters
|
|
constructingBodyWithBlock:block
|
|
progress:uploadProgress
|
|
success:success
|
|
failure:failure];
|
|
}
|
|
|
|
|
|
+ (void)postRequestWithURLString:(nonnull NSString *)URLString
|
|
authorization:(nullable NSString *)authorization
|
|
parameters:(nullable NSDictionary *)parameters
|
|
constructingBodyWithBlock:(nullable void (^)(id <AFMultipartFormData> formData))block
|
|
progress:(nullable void (^)(NSProgress * _Nonnull))uploadProgress
|
|
success:(nullable void (^)(NSURLSessionDataTask * _Nonnull, id _Nullable))success
|
|
failure:(nullable void (^)(NSURLSessionDataTask * _Nullable, NSError * _Nonnull))failure{
|
|
|
|
AFHTTPSessionManager *manager = [QJNetWorking sharedManager];
|
|
|
|
if (authorization && authorization.length)[manager.requestSerializer setValue:authorization forHTTPHeaderField:@"Authorization"];
|
|
|
|
[manager POST:URLString
|
|
parameters:parameters
|
|
headers:nil
|
|
constructingBodyWithBlock:block
|
|
progress:uploadProgress
|
|
success:success
|
|
failure:failure];
|
|
}
|
|
|
|
@end
|