iOS学习笔记-----URLSession的使用

1.GET请求

(1)

 //1 构造URL网络地址
    NSURL *url = [NSURL URLWithString:@"http://www.weather.com.cn/data/sk/101010300.html"];

    //2 构造网络请求对象  NSURLRequest
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
    //设置请求方式 GET
    request.HTTPMethod = @"GET";
    //设置请求的超时时间
    request.timeoutInterval = 60;
    //请求头
    //[request setValue:<#(nullable NSString *)#> forHTTPHeaderField:<#(nonnull NSString *)#>];
    //请求体
    //request.HTTPBody
    //3 通过配置对象构造网络会话 NSURLSession
    //使用系统默认的会话对象
    NSURLSession *session = [NSURLSession sharedSession];
    //4 创建网络任务 NSURLSessionTask
    //通过网络会话 来创建数据任务
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        NSLog(@"网络请求完成");

        //获取响应头
        //将响应对象 转化为NSHTTPURLResponse对象
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
        //获取网络连接的状态码
        //  200 成功  404 网页未找到
        NSLog(@"状态码:%li", httpResponse.statusCode);
        if (httpResponse.statusCode == 200) {
            NSLog(@"请求成功");
        }
        //响应头
        NSLog(@"响应头:%@", httpResponse.allHeaderFields);
        //获取响应体
        //对响应体进行JSON解析
        if (data) {

            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil][@"weatherinfo"];
//            NSLog(@"响应体数据:%@", dic);
            NSArray *array = dic.allKeys;
            for (NSString *key in array) {
                NSLog(@"%@:%@", key, dic[key]);
            }
        }


    }];
    //5 发起网络任务
    [dataTask resume];

(2)使用configuration配置属性,并用NSURLSessionDataDelegate代理监听数据接收

构建任务:

//构建URL
    NSURL *url = [NSURL URLWithString:@"http://218.76.27.57:8080/chinaschool_rs02/135275/153903/160861/160867/1370744550357.mp3"];
    //构建configuration
    /*
     defaultSessionConfiguration;       默认会话类型,能够进行磁盘缓存
     ephemeralSessionConfiguration;     临时会话类型,不进行任何的磁盘缓存
     backgroundSessionConfigurationWithIdentifier:(NSString *)identifier 后台类型,用于后台下载上传
     */
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];

    //设置配置文件
    //设置缓存策略
    //config.requestCachePolicy = NSURLRequestUseProtocolCachePolicy;
    //设置网络服务类型 决定了网络请求的形式
    config.networkServiceType = NSURLNetworkServiceTypeDefault;
    //设置请求超时时间
    config
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值