先寫兩個(gè)Blcok代碼塊? 用來(lái)表示成功和失敗
typedef void (^HttpSuccessBlock) (id json);
typedef void (^HttpFailureBolck) (NSError *error);
//自定義請(qǐng)求體
//GET
*? @param URL? 請(qǐng)求的網(wǎng)址字符串
*? @param params 請(qǐng)求的參數(shù)
*? @param success? ? 請(qǐng)求成功的回調(diào)
*? @param failure? ? 請(qǐng)求失敗的回調(diào)
+(void)getwithItemURL:(NSString *)URL params:(NSDictionary *)params Success:(HttpSuccessBlock)success Farams:(HttpFailureBolck )failure;
//POST
*? @param URL? 請(qǐng)求的網(wǎng)址字符串
*? @param params 請(qǐng)求的參數(shù)
*? @param success? ? 請(qǐng)求成功的回調(diào)
*? @param failure? ? 請(qǐng)求失敗的回調(diào)
+(void)postwithItemURL:(NSString *)URL params:(NSDictionary *)params Success:(HttpSuccessBlock)success Farams:(HttpFailureBolck )failure;
在自定義方法中設(shè)置解析類型
+(instancetype)shardincident
{
static RequestHttp *http=nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
http=[[RequestHttp alloc]initWithBaseURL:[NSURL URLWithString:ItemURL]];
http.responseSerializer=[AFJSONResponseSerializer serializer];
//解析類型
http.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/html", @"text/json", @"text/javascript",@"application/x-javascript",@"text/plain",@"image/gif", nil];
http.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
});
return http;
}
在封裝的get post方法中
+(void)getwithItemURL:(NSString *)URL params:(NSDictionary *)params Success:(HttpSuccessBlock)success Farams:(HttpFailureBolck)failure
{
RequestHttp *manager=[RequestHttp shardincident];
[manager GET:URL parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable json) {
if (success == nil)return ;
success(json);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure == nil)return ;
failure(error);
}];
}
+(void)postwithItemURL:(NSString *)URL params:(NSDictionary *)params Success:(HttpSuccessBlock)success Farams:(HttpFailureBolck)failure
{
RequestHttp * manage =[RequestHttp shardincident];
[manage POST:URL parameters:params progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {
if (success == nil)return ;
NSLog(@"responseObject %@",responseObject);
success(responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (error == nil)return ;
failure(error);
}];
}