小文件下载

  • 小文件下载步骤

    • 发送网络请求
    • 实现小文件下载方法
  • 小文件下载方法(仅提供每类最常用方法介绍):

    1. 直接通过NSData下载网络资源
    2. 通过NSURLSessionDataTask下载

    3. 通过NSURLConnection,发送异步-主队列请求,下载完毕后实现UI刷新(过期不用,了解需要时备查)

  1. 第一种方式(NSData)
//使用NSDta直接加载网络上的url资源(不考虑线程)
##核心代码
    //1. 根据URL加载对应的资源
    NSData *data = [NSData dataWithContentsOfURL:url];

    //2. 转换并显示数据
    UIImage *image = [UIImage imageWithData:data];
    self.imageView.image = image;
  1. 第二种方式(NSURLSessionDataTask-block)
    //1.设置请求路径
    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=ss&pwd=ss&type=JSON"];

    //2.根据路径设置请求对象-get请求
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //3..创建NSURLSession对象(可以获取单例对象)
    NSURLSession *session = [NSURLSession sharedSession];

    //4..根据NSURLSession对象创建一个Task
    NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        //6.回到主线程刷新UI


    //5..执行Task
    //注意:刚创建出来的task默认是挂起状态的,需要调用该方法来启动任务(执行任务)
    [dataTask resume];

3 第三种方式(NSURLConnection-sendAsync)

//使用NSURLConnection发送异步请求下载文件资源
##核心代码
    //使用NSURLConnection发送一个异步请求
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        //4.拿到并处理数据
        UIImage *image = [UIImage imageWithData:data];
        self.imageView.image = image;
    }];

你可能感兴趣的:(小文件下载)