#import "LYNetWorkRequestManager.h"
@implementation LYNetWorkRequestManager
///单例 + (instancetype)defaultManager { static LYNetWorkRequestManager *manager = nil; @synchronized(self) { if (!manager) { manager = [[LYNetWorkRequestManager alloc]init]; } } return manager; }
///网络请求方式 + (void)requestURL:(NSURL *)url RequestMethod:(URLRequestMethod)method Params:(NSDictionary *)param Result:(ResultBlock)resultBlock { // 定义一个空的可变字符串 NSMutableString *urlString = [NSMutableString string]; if ([url isKindOfClass:[NSURL class]]) { // 拼接url [urlString appendString:url.absoluteString]; } else if ([url isKindOfClass:[NSString class]]) { [urlString appendString:(NSString *)url]; } if (urlString.length == 0) { NSError *error = [NSError errorWithDomain:@"EPA" code:nil userInfo:@{@"reson:":@"网址输入错误"}]; return; } // 把参数字典转换为字符串 LYNetWorkRequestManager *manager = [LYNetWorkRequestManager new]; NSString *paraStr = [manager strFromDic:param]; // 判断请求类型 switch (method) { case LY_GET: { if (paraStr.length > 0) { [urlString appendString:paraStr]; } [manager getRequestURL:[NSURL URLWithString:urlString] resultBlock:resultBlock]; } break; case LY_POST: [manager postRequestURL:urlString ParaStr:paraStr resultBlock:resultBlock]; break; default: break; } } /// GET请求 - (void)getRequestURL:(NSURL *)url resultBlock:(ResultBlock)block { NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession]dataTaskWithURL:url completionHandler:block]; //开始网络请求 [dataTask resume]; }
/// POST请求 - (void)postRequestURL:(NSString *)urlStr ParaStr:(NSString *)paraStr resultBlock:(ResultBlock)block { //创建NSURL NSURL *url = [NSURL URLWithString:urlStr]; //创建可变请求 NSMutableURLRequest *mRequest = [NSMutableURLRequest requestWithURL:url]; //请求体 [mRequest setHTTPBody:[paraStr dataUsingEncoding:NSUTF8StringEncoding]];
// 设置POST [mRequest setHTTPMethod:@"POST"]; NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession]dataTaskWithRequest:mRequest completionHandler:block]; [dataTask resume]; }
///把参数字典转换为字符串 - (NSString *)strFromDic:(NSDictionary *)dic { // 空数组 NSMutableArray *mArray = [NSMutableArray array]; for (NSString *key in dic) { NSString *str = [NSString stringWithFormat:@"%@=%@",key,dic[key]]; [mArray addObject:str]; } //数组拼接成字符串 NSString *para = [mArray componentsJoinedByString:@"&"]; return para; }
@end
|