NSURLSession 网络请求
NSURLSession 可以发起以下任务,默认所有的任务都是挂起的。
以 source code 打开 Info.plist ,然后加上 以下代码就可以访问 http了
1 2 3 4 5
| <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
|
一、任务
1. DataTask
执行过程是异步的,默认是 GET 请求
1 2 3 4 5 6 7 8 9 10 11 12
| - (void)dataTask1 { NSURL* url = [NSURL URLWithString:@"http:127.0.0.1:9999/getDemo"]; // 用单例方式获取 session 对象 NSURLSession* session = [NSURLSession sharedSession]; // 封装一个任务,默认是挂起的 NSURLSessionDataTask* task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@", json); }]; // 启动任务 [task resume]; }
|
2. DownloadTask
默认会把文件下载到沙盒的 tmp 文件夹;下载完成后如果不对文件做任何操作,会自动删除文件;下载过程是异步的
AFN
一套操作网络的第三方框架
1 2 3 4 5 6
| [[AFHTTPSessionManager manager] GET:@"http:127.0.0.1:9999/getDemo" parameters:nil headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"%@", responseObject); NSLog(@"%@", [responseObject class]); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"%@", error); }];
|
NSURLSession:http://chuquan.me/2019/07/21/ios-network-nsurlsession/