iOS 多线程编程<十七、NSURLSession的基本用法>
来源:互联网 发布:矩阵 w什么意思 编辑:程序博客网 时间:2024/05/20 08:27
苹果推出NSURLSession是为了代替NSURLConnection
看一下NSURLSession的基本用法:代码如下
<span style="font-size:10px;">//// ViewController.m// NSURLSession//// Created by fe on 2016/11/7.// Copyright © 2016年 fe. All rights reserved.//#import "ViewController.h"@interface ViewController ()<NSURLSessionDataDelegate>@end@implementation ViewController- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self sessionDelegate];}- (void)get1{ //1:创建URLSession NSURLSession *session = [NSURLSession sharedSession]; //2:根据会话对象来创建task /* 第一个参数:请求对象 第二个参数:data:响应体 response:响应头 error:错误信息 */ NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.baidu.com"]]; NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSLog(@"%@---%@",error,[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]); }]; [dataTask resume];}- (void)get2{ //1:创建URLSession NSURLSession *session = [NSURLSession sharedSession]; //2:根据会话对象来创建task /* 第一个参数:请求对象 第二个参数:data:响应体 response:响应头 error:错误信息 */ NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"]; NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { }]; [dataTask resume];}- (void)sessionDelegate{ //1:创建session,并设置代理 /* 第一个参数:配置信息 第三个参数:控制代理方法在哪个线程调用 */ NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc] init]]; //2:创建task NSURLSessionTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:@"https://www.baidu.com"]]; //3:启动 [dataTask resume];}#pragma mark - NSURLSessionDataDelegate -- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTaskdidReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler;{ /* NSURLSessionResponseCancel = 0 取消(默认) NSURLSessionResponseAllow = 1 允许接受数据 NSURLSessionResponseBecomeDownload = 2 NSURLSessionResponseBecomeStream */ //请求策略,如果不设置请求策略,默认为NSURLSessionResponseCancel,则接收不到数据 completionHandler(NSURLSessionResponseAllow);}- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data;{ }- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{ }@end</span>
0 0
- iOS 多线程编程<十七、NSURLSession的基本用法>
- nsurlsession 的基本用法
- iOS开发之网络编程--1、NSURLSession的基本使用
- iOS开发之网络编程--1、NSURLSession的基本使用
- iOS 多线程编程<二、GCD基本用法>
- NSURLSession的介绍与基本用法
- iOS多线程GCD的基本用法
- ios多线程-GCD基本用法
- NSURLSession的基本使用
- NSURLSession的基本使用
- NSURLSession的基本使用
- 24-NSURLSession的用法
- NSURLSession的用法
- nsurlsession 的get用法
- 多线程编程(1):线程的基本用法
- 多线程编程(3):AsyncTask的基本用法
- iOS NSURLSession的使用
- ios NSURLSession的应用
- Android 屏幕适配笔记(基础概念)
- Unity基础包 FirstPersonController下的MouseLook 脚本研究
- cmder
- codevs 2488 绿豆蛙的归宿 题解报告
- 解析json数组对象
- iOS 多线程编程<十七、NSURLSession的基本用法>
- MVP快速开发框架
- javascript 节流器
- js字符串转义 方法参数
- ButterKnife框架使用
- Qt5 网络篇 获取本机网络信息
- 集合框架ArrayList、List、Vector+JAVA学习笔记-DAY15
- 面试必备
- textfield只能输入数字,(登录、注册电话号码的格式判断)等正则表达