iOS网络开发(2)使用NSURLConnection
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS网络开发(2)使用NSURLConnection,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2394字,纯文字阅读大概需要4分钟。
内容图文
![iOS网络开发(2)使用NSURLConnection](/upload/InfoBanner/zyjiaocheng/1068/d733a5a34a61409bbb4953f871fc1db2.jpg)
-
NSURLConnection介绍
NSURLConnection可以非常便捷的发送同步或异步网络请求
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error + (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler
出于各方面的考虑,苹果在iOS9.0开始弃用NSURLConnection,而是用NSURLSession代替。
-
同步的网络请求
NSData数据类,从URL中获取数据创建对象的方法,就属于同步请求,其弊端是无法获得应答对象。
NSURLConnection提供类方法,快速发送一个异步请求
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error
入参request:请求对象(url、请求类型、请求参数)
出参response:响应对象
出参error:错误对象(如果出错的话)
返回值:响应数据
如:请求获取一个图片资源
同步请求的弊端:
请求过程耗时,会使当前线程阻塞,无法进行其他操作
特别是在主线程中调用时,此过程中App将无法进行任何UI操作。
-
异步的网络请求 — 与多线程配合
即,将同步请求的操作放在子线程中执行
需要注意的是:子线程不能更新UI,更新UI操作需要回到主线程中完成
如:使用GCD
-
异步的网络请求 — 发送异步请求方法
NSURLConnection提供了一个发送异步请求的方法
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler
异步操作,当前线程并不等待请求过程的完成,故不能通过参数或返回值获得结果
异步操作获得结果的操作通常有几种做法:代理、通知、block
该操作使用的是block方式,block中的参数通常是获得结果(响应对象、响应数据、错误对象)
-
异步的网络请求 — 使用代理监听请求过程
NSURLConnection对象包含一个代理属性
提供代理协议<NSURLConnectionDelegate><NSURLConnectionDataDelegate>
常用的代理方法:
// 接收到响应对象 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response // 收到部分或全部数据 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data // 完成响应数据的接收 - (void)connectionDidFinishLoading:(NSURLConnection *)connection // 请求失败 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*)error
如:
本文出自 “安萌” 博客,请务必保留此出处http://annmeng.blog.51cto.com/3321237/1746697
原文:http://annmeng.blog.51cto.com/3321237/1746697
内容总结
以上是互联网集市为您收集整理的iOS网络开发(2)使用NSURLConnection全部内容,希望文章能够帮你解决iOS网络开发(2)使用NSURLConnection所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。