NSUrlSession 网络会话介绍


NSUrlSession 网络会话的使用分三步:

1> 创建网络会话 【单例】

2> 实例化网络任务【默认挂起状态,并且在在子线程回调】

3> 开启网络任务【手动】

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSString *urlString = @"http://localhost/服务器资料/demo.json";

    // 如果url中有汉字,需要做百分号转译,在iOS9以后使用新的方法 stringByAddingPercentEncodingWithAllowedCharacters:
    urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    // 1. 实例化一个网络会话(单例)
    NSURLSession *session = [NSURLSession sharedSession];
    
    // 2. 根据网络会话,实例化网络任务!
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        // Block 回调,网络请求成功之后的回调! (默认是在子线程)
        
        //注意: 1.data:二进制数据! 转换过来之后是否是json格式的数据,可通过转为字符串来查看.
        // 2.在网络请求中,必须做失败处理!
        if (data) { // 判断服务器是否响应回来数据.如果有响应数据,说明肯定访问成功!
        
           // 这句代码是调试的时候最常用的一句代码!
           // NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
   // NSLog(@"jsonString:%@",jsonString);
            
           // 参数: Data 二进制数据(必须是JSON格式的二进制数据,如果不是,解析出来是 nil )!
           // 在 OC 中 ,看到两个 ** 传 NULL(空地址) .一个 * 传 nil(空对象)!
           // 返回值,就是解析之后的 OC 数据!
            
            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
            NSLog(@"dict:%@",dict);
            
            // 接下来,就是字典转模型...
        }
    }];
    
  // 3. 开启这个网络任务! 默认是挂起状态,需要手动开启.
    [task resume];
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值