+ (void)requestWithURL:(NSString *)url
methdod:(NSString *)method
params:(NSDictionary *)params
completion:(Completion)com
{
//url: body key=value&key=value
// 0 编码(拼接链接)
NSString *appecdURL = [NSString stringWithFormat:@"%@%@",KBaseURL,url];
// NSString *encodeURL = [appecdURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSMutableString *paramsStr = [NSMutableString string];
for (int i = 0; i < params.count; i++) {
id key = [params allKeys][i];
id value = params[key];
if (i > 0) {
[paramsStr appendString:@"&"];
}
[paramsStr appendFormat:@"%@=%@", key, value];
}
NSLog(@"pram string : %@",paramsStr);
NSURL *requestURl = nil;
// 2 设置请求
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
if ([[method uppercaseString] isEqualToString:@"GET"]) {
NSString *string = [NSString stringWithFormat:@"%@?%@",appecdURL,params];
// 1 构造URL
requestURl = [NSURL URLWithString:string];
//自动转为大写
}else if ([[method uppercaseString] isEqualToString:@"POST"]){
requestURl = [NSURL URLWithString:appecdURL];
NSData *data = [NSData dataWithContentsOfFile:paramsStr];
[request setHTTPBody:data];
}
request.URL = requestURl;
// // 3 建立链接
// [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
// // NSString *json = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//
//
// id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:NULL];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
// 回到主线程
dispatch_sync(dispatch_get_main_queue(), ^{
if (com != nil) {
com(json);
}
});
}];
[task resume];
}