NSUrlSession 网络会话介绍

iOS网络2——NSURLSession使用详解 NSURLSession在2013年随着iOS7的发布一起面世,苹果对它的定位是作为的替代者,然后逐步将NSURLConnection退出历史舞台。现在使用最广泛的第三方网络框架:AFNetworking、SDWebImage等等都使用了NSURLSession。作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新、系统的更新、API的更新,而不能墨守成规。Session翻译为中文意思是会话,我们知道,在七层网络协议中有物理层->数据链路层->网络层->传输层->会话层。 阅读详情


NSUrlSession 网络会话的使用分三步:

1> 创建网络会话 【单例】

2> 实例化网络任务【默认挂起状态,并且在在子线程回调】

3> 开启网络任务【手动】

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSString *urlString = @"http://localhost/服务器资料/demo.json";

    // 如果url中有汉字,需要做百分号转译,在iOS9以后使用新的方法 stringByAddingPercentEncodingWithAllowedCharacters:
    urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    // 1. 实例化一个网络会话(单例)
    NSURLSession *session = [NSURLSession sharedSession];
    
    // 2. 根据网络会话,实例化网络任务!
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        // Block 回调,网络请求成功之后的回调! (默认是在子线程)
        
        //注意: 1.data:二进制数据! 转换过来之后是否是json格式的数据,可通过转为字符串来查看.
        // 2.在网络请求中,必须做失败处理!
        if (data) { // 判断服务器是否响应回来数据.如果有响应数据,说明肯定访问成功!
        
           // 这句代码是调试的时候最常用的一句代码!
           // NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
   // NSLog(@"jsonString:%@",jsonString);
            
           // 参数: Data 二进制数据(必须是JSON格式的二进制数据,如果不是,解析出来是 nil )!
           // 在 OC 中 ,看到两个 ** 传 NULL(空地址) .一个 * 传 nil(空对象)!
           // 返回值,就是解析之后的 OC 数据!
            
            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
            NSLog(@"dict:%@",dict);
            
            // 接下来,就是字典转模型...
        }
    }];
    
  // 3. 开启这个网络任务! 默认是挂起状态,需要手动开启.
    [task resume];
}


objective-c - 基础篇 - 数据库网络 -- 使用NSURLSession进行POST请求的网络数据 一、使用NSURLSession进行POST请求的网络数据 说明一:NSURLSession适用于网络数据请求,有如下注意点: 1:使用session其实都是异步的 2:session中有三个任务供我们选择,一个是只上传,一个是只下载,另一个是上传和下载。我们下面 4 使   用的就是上传和下载任务。 3:session会产生多条线程,但是我们只能在主线程中控制UI控件 阅读详情

相关推荐

PG-FP6编程器错误代码解析与高效排障实战指南

在嵌入式系统开发与量产烧录中,编程器是连接开发环境与目标硬件的重要桥梁。其工作原理是通过特定的通信协议(如UART、SWD)与微控制器(MCU)建立连接,完成程序代码的写入、擦除与校验。这项技术的核心价值在于确保固件能够准确、可靠地部署到硬件中,是产品从原型到量产的关键环节。在实际的工程实践中,尤其是在使用瑞萨(Renesas)PG-FP6这类编程器进行调试或批量生产时,工程师常会遇到各种通信失败、编程验证错误或电源异常等问题,这些问题往往以特定的错误代码形式呈现。深入理解这些错误代码背后的硬件连接、电源时

weixin_34387468的博客 581

网络基本概念——会话(session)

这是摘自维基百科的篇章,对于计算机学科中“会话”的解释如下: In computer science, in particular networking, a session is a temporary and interactive information interchange between two or more communicating devices,or between a ...

ypy9323的博客 1万+

海康安防平台接口调试指南:从签名生成到Vue项目集成

本文详细解析了海康安防平台接口认证规则,从签名生成到Vue项目集成的完整流程。通过核心机制解析、签名工具使用技巧及Vue项目中的优雅集成方案,帮助开发者高效完成接口调试,避免常见问题。特别适合需要将海康安防平台接口集成到Vue项目中的开发者参考。

weixin_42533120的博客 439

(网络)流和会话

流:指具有相同五元组(源IP,源端口,目的IP,目的端口,传输层协议)的所有包 会话:指由双向流组成的所有包(源和目的互换)

醉糊涂仙的博客 5032

CANOE仿真someip报文配置说明

利用canoe测试车辆控制器someip报文收发的步骤

AUTOSAR架构汽车软件开发 1万+

半导体晶圆调平系统:基于最小二乘法的实现方案

基于最小二乘法的晶圆调平技术通过数学建模与工程实现的结合,解决了半导体量测中高精度平面对准的核心问题。实际应用中,需根据设备特性优化采样策略、校准传感器误差,并通过实时性优化满足高产能场景需求。该方案的模块化设计(如分离数据采集、拟合计算、补偿输出)也为后续功能扩展(如引入机器学习优化拟合模型)提供了灵活性。

品质生活,极致编程。 1182

iOS学习笔记13-网络(二)NSURLSession

在2013年WWDC上苹果揭开了NSURLSession的面纱,将它作为NSURLConnection的继任者。现在使用最广泛的第三方网络框架:AFNetworking、SDWebImage等等都使用了NSURLSession。作为iOS开发人员,应该紧随苹果的步伐,不断的学习,无论是软件的更新、系统的更新、API的更新,而不能墨守成规。 * 相比较NSURLConnection,NSURLSes

执着丶执念的博客 752

天龙八部TLBB系列 - 网单用数据库修改为其他门派

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等) --- 天龙八部修改门派

空名先生 9430

iOS网络--NSURLSession基本使用(1)

一、NSURLSession NSURLSession是苹果对网络会话的封装,可以完全替代原来的NSURLConnection。相比于NSURLConnection,NSURLSession具备以下优势: 支持http2.0协议 在处理下载任务的时候可以将下载内容写入磁盘(NSURLSessionDownloadTask) 支持后台下载/上传 同一个NSURLSession可以发送多个请...

qq_41856760的博客 581

AD9914数字斜坡模式使用

类似的,如果DRG输出处于负斜率斜坡中间,DRCTL引脚由逻辑0变为逻辑1,那么DRG会立即切换成正斜率参数,恢复在两个限值之间振荡输出。当两个非驻留位同时设置时,每次DRG输出达到编程设定的上限值或下限值后(假定DRG过输出使能位(0x01[13])已设置),DROVER信号会产生一个正脉冲(两个DDS时钟周期)。不过,在非驻留操作中,DRG输出不一定保持在上下限值。例如,设置数字斜坡非驻留高位,则当达到上限值时,DRG会自动(立即)跳到下限值(这一过程并非以斜坡方式返回下限值,而是直接跳至下限值)。

wangjie36的博客 3865

【科研数据获取】根据Excel表个中的企业/公司信息批量获取经纬度坐标,并进行地图可视化

批量获取企业/公司的经纬度坐标,并进行地图可视化1 需求2 实现途径3 需求逐步实现 1 需求 在做项目的时候,老板或者项目答辩时候甲方最喜欢看到的就是可视化结果,尤其是涉及到地图可视化。很多时候会遇到企业/公司的数据,想要做地图可视化,必不可少的就是要获取它们具体地址:第一种就是像查户口一样精准一下具体的城镇街道,还有一种就是经纬度信息,前一种属于文字内容往往用于管理方面,第二种数字信息多用于数据处理与分析。 2 实现途径 获取地理信息数据,自然需要使用到地图的功能,这里直接采用百度地图的拾取坐标系统,

lys_828的博客 2337

iOS总结-自身网络框架NSURLSession之NSURLSessionConfiguration的解析

NSURLSession是iOS7中新添加的网络访问接口,如果用户强制将程序关闭,NSURLSession会断掉. NSURLSessionConfiguration:用于配置NSURLSession的工作模式/网络设置,超时值,缓存策略,连接要求等,初始化会话对象之前,正确配置NSURLSessionConfiguration对象很重要,如果需要修改传输策略,必须更新会话配置对象并使用它创建新...

qq_28551705的博客 449

(考研湖科大教书匠计算机网络)第四章网络层-第三节3、4:划分子网的IPv4地址和无分类IP地址

子网掩码: 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号子网掩码使用连续的比特1来对应网络号和子网号子网掩码使用连续的比特0来对应主机号将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址如下图。

快乐江湖的博客 1348

NSURLSession -- 备忘

NSURLSession NSURLSession是iOS7出的API,在它之前常用的原生网络库是NSURLConnection,但是因为Connection的使用起来不是很方便 所以我们一直倾向于AFNetworking,AFNetworking的确非常强大 但是我们也不该遗忘NSURLSession 因为NSURLSession使用起来也很方便。 NSURLSession的三种工...

138

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

NSURLSession下的网络请求

现在网络请求一直使用第三方,系统的请求API都不会用了,终于有时间温习一下了。 GET请求 // 1.创建url NSURL * url = [NSURL URLWithString:URL]; // 2.创建session对象 NSURLSession * session = [NSURLSession sharedSession]; // 系统提供的

lg767201403的博客 317

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[Swift]Swift网络开发之NSURLSession学习笔记

Swift网络开发之NSURLSession学习笔记 先上效果图; 功能: -单个任务下载 -暂停下载任务 -取消下载任务 -断点下载 -显示下载进度及速度 -多任务下载 -分别控制各个任务 在如今移动互联网的浪潮中...

chuanao8829的博客 286

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

从NSURLConnection到NSURLSession

从NSURLConnection到NSURLSession

赵不懂的博客 421

swift开发网络篇—利用NSURLSession 发送GET和POST请求

说明:本文示例代码发送的请求均为http请求,需要对info.plist文件进行配置。如何配置,请参考https://github.com/HanGangAndHanMeimei/iOS9AdaptationTips 一、简单说明   在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网

ABCD2686529828的博客 1万+

NSURLSession

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33898233的博客 86

NSURLSession和AFNetWorking配合使用

1. NSURLSession下载网络任务 #pragma mark - NSURLSession下载任务 - (void)test1 { // 1. 创建url NSURL *url = [NSURL URLWithString:Base_URL]; // 2. 创建网络请求 NSURLRequest *request = [NSURLReq

CharlesYaoxin的博客 674

用NSURLSession从网络获取图片

#import @interface DataTaskViewController : UIViewController @property (weak, nonatomic) IBOutlet UIImageView *ImageView; @property (weak, nonatomic) IBOutlet UILabel *ProgressLable; @property (w

lqm0628的博客 991

iOS 网络请求 NSURLSession

对于目前版本的系统的网络请求 网上很多东西都比较乱,现整理NSURLSession 的基本用法。 //1.获取文件访问的路径 接口 NSString *path=@"http://1.studyios.sinaapp.com/getAllClass.php"; //2.封装 URL NSURL *url=[NSURL URLWithString:path]...

weixin_33682719的博客 81

使用NSURLSession发起HTTPS网络请求

最近需要发送https请求,所以就封装了一个使用NSURLSession发起HTTPS请求的类,以post请求为例看代码。 首先在.h文件中会暴露出一个对象方法,用于发起post请求: - (void)postRequstUrl:(NSString *)url andJsonParam:(NSString *)jsonParam; 然后会有一个代理用于接受网络请求的结果:@protocol

一步一迹的博客 3155

NSURLSession与NSURLConnection区别

1、 使用现状 NSURLSession是NSURLConnection 的替代者,在2013年苹果全球开发者大会(WWDC2013)随ios7一起发布,是对NSURLConnection进行了重构优化后的新的网络访问接口。从iOS9.0开始, NSURLConnection中发送请求的两个方法已过期(同步请求,异步请求),初始化网络连接(initWithRequest: delega...

weixin_34153893的博客 86
上一篇: 介绍5个简单的网络请求Demo
下一篇: 使用苹果原生的JSON数据解析浅析
explore_zhang
博客等级 码龄11年 5粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值