首页 > 代码库 > 关于网络NSURLSession

关于网络NSURLSession

- (void)get1

{

    // 1.创建回话对象

    NSURLSession *session = [NSURLSession sharedSession];

    

    // 2. 根据回话对象来创建task

    NSURL *url = [NSURL URLWithString:JSON_LONG_URLString];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    

    

    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        

        NSLog(@"%@--%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding], [NSThread currentThread]);

    }];

    

    [dataTask resume];

    

}

 

- (void)get2

{

    NSURLSession *session = [NSURLSession sharedSession];

    NSURL *url = [NSURL URLWithString:JSON_LONG_URLString];

    

    NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        NSLog(@"%@--%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding], [NSThread currentThread]);

    }];

    [dataTask resume];

}

 

- (void)post

{

    NSURLSession *session = [NSURLSession sharedSession];

    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login"];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    request.HTTPMethod = @"POST";

    request.HTTPBody = [@"username=520it&pwd520it&type=JSON" dataUsingEncoding:NSUTF8StringEncoding];

    

    [[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        NSLog(@"%@--%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding], [NSThread currentThread]);

    }] resume];

}

 

- (void)downloadFile

{

    NSString *strURL = @"http://120.25.226.186:32812/resources/images/minion_08.png";

    NSURLSession *session = [NSURLSession sharedSession];

    NSURL *url = [NSURL URLWithString:strURL];

    

    // location 文件下载缓存路径

    NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithURL:url completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        NSLog(@"location=%@", location);

        

        

        NSString *fullPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename];

        

        [[NSFileManager defaultManager] moveItemAtURL:location toURL:[NSURL fileURLWithPath:fullPath] error:nil];

        

        NSLog(@"fullPath=%@", fullPath);

        

        

    }];

    [downloadTask resume];

    

    // 采用block返回的方法,这个方法不适合大文件下载,主要是因为要等到文件下载完成后,才会调用block。

    

}

关于网络NSURLSession