zoukankan      html  css  js  c++  java
  • iOS网络请求之NSURLSession

    引言

    最近半年一直在学习JavaWeb,落下了iOS。如下寒假来临,自己又有时间进一步学习iOS了。并且伴随了在寒假准备搞定一个项目,工作之余开始自己有意识的要提高,决定深入研究一下”网络”这一块。

    NSURLSession

    自己开始写的时候发现最基本的网络的请求不能用了,开始寻求答案。
    如下:这是“聚合数据官网”的一个有关身份证查询的API

          //1、构造URL
          NSString *URLString = @"http://apis.juhe.cn/idcard/index?key=官网提供的Key&cardno=身份证号";
        NSURL *URL = [NSURL URLWithString:URLString];
      
      //2、构造Request:HTTP请求类型、HTTP请求体、超市、HTTP请求头、
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:5];
    
        //3、构造Session
        NSURLSession *session = [NSURLSession sharedSession];
    
        //4、构造task
        NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            
            //请求结束后得到数据
            NSError *myError;
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&myError];
            if (myError == nil) {
                NSDictionary *result = [dic objectForKey:@"result"];
                if (result) {
                    NSLog(@"地区:%@",[result objectForKey:@"area"]);
                    NSLog(@"性别:%@",[result objectForKey:@"sex"]);
                    NSLog(@"出生日期:%@",[result objectForKey:@"birthday"]);
                }
            }
        }];
    
    
        //5、唤醒task    
    
        [task resume];
    

    还有在iOS 9 中HTTP协议也不能用了,请大家搜一下高级的内容:我的解决方案:改回HTTP:在Info.plist中添加一个Key:App Transport Security Settings。然后在该Key下面添加添加一个Key:Allow Arbitrary Loads,值设为YES.

  • 相关阅读:
    Java学习10——package和import
    第一次作业_031502532_吴智慧
    Java学习9——面向对象
    Java学习8——类(对象)之间的关系
    Java学习7——一些注意的地方
    Java学习5——标识符和关键字
    Zookeeper集群和HBase集群
    Zookeeper、HBase的伪分布
    hive学习笔记——表的基本的操作
    hive 学习笔记——表的入门操作和命令
  • 原文地址:https://www.cnblogs.com/123qw/p/5169280.html
Copyright © 2011-2022 走看看