网络传输及数据解析

网络解析的目的是从网络服务器加载数据,能够保证应用程序内部的内容,常换常新,及时更新!    

网络传输的数据格式为: JSON、字典、数组三种方式。         

格式解析:      

JSON 解析        

NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];     

 

 XML 解析  

 1. 实例化解析器

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];

 2. 代理   parser.delegate = self;

 3. 解析器解析   [parser parse];

 

 2.解析步骤 

 1. 文档开始 

 2. 开始节点

 3. 发现节点内容  

 4. 完成节点

 注意:2\3\4循环执行,直到解析文档结束

 5. 文档完成

 6. 出错  

 

 网络访问常用方法 : GET & POST    

GET

优点:直接拿数据,会在URL中拼接参数,效率高,安全性高

作用:直接获取网络数据    

POST

特点:将数据体提交给服务器,然后再获取到结果,效率略低,安全性不好    

用途:实现用户登录,上传文件。 

关于用户注册登录部分的处理的提示:用户的真实密码,尽在注册或登录时有效,除此之外,都应该使用加密后的密码传递。MD5“加盐!”    

 

网络访问步骤    

1. NSURL  

2. NSURLRequest  

3. NSURLConnection (同步/异步方法)

 NSURLSession    (如果只是简单的获取数据,直接使用NSURLConnection即可)   

目前实现断点续传功能,做的非常优秀!  

 

 NSURLSession 的使用步骤

 1. NSURL  

 2. NSURLRequst

 3. NSURLSession       NSURLSession *session = [NSURLSession sharedSession];

 4. NSURLSessionTask(DataTask, DownloadTask, UploadTask)     NSURLSessionDataTask => XML, JSON, HTML  

 提示:任务建立后,默认都是挂起状态,需要使用resume启动任务。

 

NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {        

  网络数据任务完成的块代码    

NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];      

   [_webView loadHTMLString:html baseURL:url];

}];

 

 启动(继续)任务 [task resume];

 下载任务的代码

 1. URL ( 注意:在开发网络应用时,为了避免不必要的错误,所有URL的字符串都需要添加百分号 )

转换之前,提前把文件名弄出来

NSString *fileName = [urlString lastPathComponent];

urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:urlString];

 

2. 会话

2.1 会话配置,使用默认配置   

NSURLSessionConfiguration *configure = [NSURLSessionConfiguration backgroundSessionConfiguration:@"后台任务的标示符"];

NSURLSessionConfiguration *configure = [NSURLSessionConfiguration defaultSessionConfiguration];

NSOperationQueue *queue = [[NSOperationQueue alloc] init];

_session = [NSURLSession sessionWithConfiguration:configure delegate:self delegateQueue:queue];

3. 下载任务

  如果要让代理参与监控下载进度,在实例化下载任务时,不能指定完成后的块代码 _downloadTask = [_session downloadTaskWithURL:url];

4. 启动任务 [_downloadTask resume];

 

 

转载于:https://www.cnblogs.com/swcheng/p/3650807.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值