您当前的位置:首页 > 建站知识 > 编程知识

NSURLSessionDataTask取网络数据

发布时间: 2020-04-29 │ 浏览:597 

#define BASEURL "https://www.workneed.com"

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat: @"%s/index.html",BASEURL]];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setHTTPMethod:@"GET"];
    [request addValue:@"text-plain" forHTTPHeaderField:@"Content-Type"];
    [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
    
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
    
    //返回响应;注意是异步
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        
        if (error) {
            //请求失败,打印错误信息
            NSLog(@"请求失败 :%@",error.localizedDescription);
        }else{
            //请求成功,NSData转成NSString
            NSString *resp  =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            //看一下收到的数据
            NSLog(@"resp=%@",resp);
            
            //在主线程中刷新界面。
            dispatch_async(dispatch_get_main_queue(), ^{
                //刷新界面的语句一定要写在这里
                
            });
            
        }
    }];
    
    [task resume];//task开始执行