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.

  • 相关阅读:
    js基础第七天
    js基础第六天
    js基础第四天
    js基础第3天
    js基础第二天
    js基础第一天
    第一天CSS实战培训及笔记及感想
    2015年10月23日JS笔记
    表格类选中区域复制的实现
    复杂表头
  • 原文地址:https://www.cnblogs.com/123qw/p/5169280.html
Copyright © 2011-2022 走看看