文档章节

IOS开发中 session&HTTPS&AFN

KevinEmily
 KevinEmily
发布于 2016/02/21 19:48
字数 1031
阅读 122
收藏 3

1.NSURLSession:  ios7.0之后  代替URL connection 

用于替代NSURLConnection   支持后台运行网络    暂停、停止、重启网络任务、  不再需要自己封装NSOperation  

2.NSURLSession

可以发起以下任务  默认所有的任务都是挂起的 DataTask  UploadTask  DownloadTask

3.NSURLSessionConfiguration  配置请求信息

4.DataTask.

 getDemo://创建session  sharedSession

//生成dataTask/*url ;完成时候的回调*/

//开启任务[dataTask resume];

postDemo://创建session//请求//get->post//请求体//开启任务resume

5.downloadTask下载文件:异步执行

//创建session

//下载任务/*location  文件下载到本地的路径;response响应头;错误*/

//拷贝文件cache

//文件保存路径/*文件路径;拷贝到哪里;错误*/

//开启任务

问题:文件确实下载  但是文件会自动删除(保证用户闪存有一个好的利用率)

在block返回之前要拷贝 打开文件  如果block执行完成之后 文件就不删除了

6.session下载进度使用代理方式

//session设置代理/*Configuration session的配置信息;代理;代理队列 指定代理方法将在哪个队列上执行 指定线程 */

下载的过程中 一定是在子线程 但是可以指定代理方法 在哪个队列上执行

//默认的session配置信息

//downloadTask

//resume

//当下载task指定了block回调   就不会执行代理方法

/*didWriteData  本次得到的数据长度;totalBytesWritten  已经下载了多少数据的长度;totalBytesExpectedToWrite  文件的总长度*/进度

//及时把文件拷贝到指定地方 否则文件会被删除

7.断点续传

暂停cancelByProducingResumeData  :resumeData返回已经下载数据的信息  不是文件本身   是已经下载的文件信息  包括url文件长度  etag

继续downloadTaskWithResumeData:重新创建downloadTask并且把resumeData已经下载的文件信息告诉他

问题(1):开始-暂停-暂停-继续-崩溃

原因:点击多次暂停  resumeData为空  downloadTask创建报错

(2)继续-崩溃

原因:resumeData为空  downloadTask创建报错

(3)开始-暂停-继续多次   进度混乱

原因:开启了多个下载任务

8.压缩和解压缩 

第三方框架  底层是c语言

压缩文件/*指定zip包生成的

路径;要打包的文件夹路径*/

9.webDav配置  把图片上传到webdav服务器上

//创建一个session

//上传到webdav服务器  表明要向uploads文件夹下创建一个03.jpg

//request   get->put

//生成验证信息的字符串

//base64编码  NSData *data

10.删除webdav上面的图片资源

/*请求  get->delete;请求头加验证信息;dataTask*/ 

11.HTTPS:

(1)信任服务器返回的证书(公钥)

(2) 客户端产生随机密钥 

(3)公钥对  随机密钥进行对称加密(rsa)

(4) 把用公钥加密后的随机密钥发送给服务器   

(5)使用随机密钥加密数据和服务器交互

12.https代理:/*challenge从服务器获得公钥的信息;completionHandler  把验证结果告诉服务器*/

//判断验证方式

//直接选择相信服务器 需要生成对称加密的密钥  交给服务器

//把密钥交给服务器  填0表示显现服务器

13.AFN  

//找到对应的管理类当前manager是connection去实现 

AFN默认会把数据进行json反序列化

//追加文件的内容到响应体

14.AFN-session    Demo

//manager  用session来实现  使用方式不变/*请求;进度NSProgress** (&progress);指定下载文件的地址(NSString->URL     本地路径不能使用URLWithString);完成下载的回调*/

15.下载进度

kvo观察者模式/*要观察他的对象;观察哪个key;选项   选择观察新的值或者旧的值;其他参数

//当被观察的对象发生改变  就会调用此方法/*观察哪个key;观察的对象;变化;其他参数*/

16.访问百度

//manager  用session来实现  使用方式不变

//指定序列化器

//默认AFN是对json反序列化  html不能直接序列化

//xml解析

NSXMLParser*parser = responseObject;

parser.delegate = self;


© 著作权归作者所有

KevinEmily
粉丝 18
博文 40
码字总数 23590
作品 0
东城
私信 提问
好坏美丑,开发者眼中的 iOS 7

跟着新 iPhone 发布的节奏,iOS 史上转变最大的 iOS 7 将要在苹果的各类新产品上大展拳脚了。从消费者眼里看来,这种转变是拟物化向扁平化的转变和新加入的控制中心等。但是对于开发者而言,...

oschina
2013/08/29
5.3K
42
iOS 学习资料整理

视频教程(英文) Developing iOS 7 Apps for iPhone and iPad 斯坦福开放教程之一, 课程主要讲解了一些 iOS 开发工具和 API 以及 iOS SDK 的使用, 属于 iOS 基础视频 iPad and iPhone Applic...

拉偶有所依
2015/01/19
2.2K
4
那些在学习iOS开发前就应该知道的事(part 1)

英文原文:Things I wish I had known before starting iOS development—Part 1 设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了。这个界面模...

TomatosX
2015/06/12
0
0
Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序。自从Xamarin问世后,C#的作用就发生了很大的变化。它不仅可以编写关于Windows...

大学霸
2014/10/23
0
0
iOS 开发之一些著名开发者博客

国内 王巍 王巍目前在日本横滨任职于 LINE。工作内容主要进行 Unity3D 开发,8小时之外经常进行 iOS/Mac 开发。他的陈列柜中已有多款应用,其中番茄工作法工具非常棒。 博客 池建强 池建强,...

maskmale
2018/02/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

优雅的关闭Spring Boot

优雅的关闭Spring Boot 1、实现 TomcatConnectorCustomizer 接口拿到Tomcat的连接获取 Tomcat连接池 2、实现 ApplicationListener<ContextClosedEvent> 监听服务器关闭事件,注册JVM钩子函数...

sowhat
今天
2
0
Python3-Web开发

简介 Web开发框架 什么是Web框架? Web应用程序框架或简单的Web框架表示一组库和模块,使Web应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。 virtualenv是一个虚拟...

wuxinshui
今天
3
0
使用技媒体实践编写发布博客

技媒体实践博客 CSDN OSChina 知乎 简书 思否 掘金 51CTO

晨猫
今天
2
0
Lucene

1、什么是全文检索 数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固...

榴莲黑芝麻糊
昨天
5
0
python到setuptools、pip工具的安装

python安装 基础开发库   apt-get install gcc  apt-get install openssl libssl-dev 安装数据库和开发库   apt-get install mysql-server libmysqld-dev python环境   下载地址...

问题终结者
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部