标签:
1 #pragma mark - 同步get请求 2 //1.创建URL 3 NSURL *url = [NSURL URLWithString:GET_URL]; //GET_URL是宏定义的一个网址链接 4 //2.根据URL创建具体的请求(使用缓存策略) 5 NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20]; 6 //3.链接服务器 7 //参数1:请求对象 8 //参数2:存储一些网络请求的信息(一般为包体)现在一般写nil 9 //参数3:错误信息 10 NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 11 //4.进行json数据解析 12 NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 13 NSLog(@"%@", resultDic);
1 #pragma mark - 同步post方法 2 //创建url 3 NSURL *url = [NSURL URLWithString:POST_URL]; 4 //创建网络请求[要进行内容的拼接设置,必须是可变的] 5 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 6 7 // 设置body 8 //创建一个链接字符串(这个内容在以后的开发中接口文档都有标注) 9 NSString *dataString = POST_BODY; 10 //对链接字符串进行编码(这步不可以忘记) 11 NSData *postData = [dataString dataUsingEncoding:NSUTF8StringEncoding]; 12 13 //设置请求格式为POST请求(字母必须全部大写) 14 [request setHTTPMethod:@"POST"]; 15 //设置请求体(body) 16 [request setHTTPBody:postData]; 17 18 //3.链接服务器 19 NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 20 //4.进行json数据解析 21 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 22 NSLog(@"%@", dic);
1 #pragma mark - 异步get请求 2 //1.创建url 3 NSURL *url = [NSURL URLWithString:GET_URL]; 4 //2.创建session对象 5 NSURLSession *session = [NSURLSession sharedSession]; //单例 6 //3.创建task请求任务 7 //NSURLSessionTask是基于任务去完成相关的事件的 8 //NSURLSessionTask所有的任务均放在这个里边实现 9 NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { 10 //4.解析相关的数据 11 if (error == nil) { 12 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 13 NSLog(@"%@", dic); 14 } 15 }]; 16 //5.核心部分:启动任务[这个步骤容易忘记] 17 //原因:NSURLSessionTask实例出来的任务处于挂起状态,如果不启动,不会走block中的实现内容 18 [task resume];
#pragma mark - 异步post请求 //1.创建url NSURL *url = [NSURL URLWithString:POST_URL]; //2.创建请求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //核心设置BODY NSString *bodyStr = POST_BODY; NSData *postData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:postData]; //3.创建session对象 NSURLSession *session = [NSURLSession sharedSession]; //4.创建task NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { //5解析数据 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@", dic); }]; //6.启动任务 [task resume];
同步与异步的差异:同步即同步请求网络数据,时间上是即时获取到数据,每次都是即时从网络上获取数据.而异步则可以从之前已经缓存过的数据中读取,从而异步比同步加载数据要快捷许多.
标签:
原文地址:http://www.cnblogs.com/lovebugssun/p/5490025.html