#import <Foundation/Foundation.h>
typedef void(^HSSuccessBlock)(NSDictionary *data);
typedef void(^HSFailureBlock)(NSError *error);
@interface HTTPNetworkEngine : NSObject
+ (HTTPNetworkEngine *)shareInstantce;
- (void)postWithUrl:(NSString *)url
postParam:(NSDictionary *)postParam
success:(HSSuccessBlock)success
failure:(HSFailureBlock)failure;
@end
#import "HTTPNetworkEngine.h"
#import "AFNetworking.h"
static HTTPNetworkEngine *shareInstance = nil;
const NSInteger outTime = 5;
@implementation HTTPNetworkEngine
+ (HTTPNetworkEngine *)shareInstantce {
static dispatch_once_t pred;
dispatch_once(&pred, ^{
shareInstance = [[self alloc] init];
});
return shareInstance;
}
- (void)postWithUrl:(NSString *)url
postParam:(NSDictionary *)postParam
success:(HSSuccessBlock)success
failure:(HSFailureBlock)failure {
AFHTTPSessionManager *mananger = [AFHTTPSessionManager manager];
/**可接收類型 */
/**JSON */
mananger.requestSerializer = [AFJSONRequestSerializer serializer];
/**Dictionary */
mananger.responseSerializer = [AFHTTPResponseSerializer serializer];
mananger.operationQueue.maxConcurrentOperationCount = 10;
mananger.requestSerializer.timeoutInterval = outTime;
[mananger POST:url parameters:postParam progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (success) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
success(dic);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (failure) {
failure(error);
NSLog(@"網(wǎng)絡(luò)異常");
}
}];
}
@end
這里僅僅做一個(gè)post類型的封裝管削,其他的以此類推彪置。