网络编程二
一、AFNetworking第三方网络框架
AFNetworking2.0使用简单,对最新的iOS特性有很好的支持,对NSURL进行了封装。
AFNetworking是对NSURLConnection网络组件进行了封装。但iOS7之后,AFNetworking对NSURLSession网络组件进行封装。
AFNetworking:
NSURLConnection核心的网 络请求功能
NSURLSession针对iOS7新增 的后台多任务
Reachablity用于检测网络状况
Serizalization可序列化的
Request和Response对象封装
Security针对SSL Pinning的封 装,用于通讯安全
(1)AFHTTPSessionManager
AFHTTPSessionManager:用于管理NSURLSession对象、管理网络请求、下载、上传任务等操作
具体实现在UI学习---UI高级---08网络编程二---代码中的01和02
(2)AFHTTPRequestSerializer
客户端提交给服务器的数据格式主要有:&拼接、JSON
AF封装了相应的类对每一种数据格式进行拼接
AFHTTPRequestSerializer:&拼接格式
AFJSONRequestSerializer:JSON数据格式
(3)AFURLResponseSerialization
服务器返回的数据格式主要有:JSON、XML
AF封装了相应的类对返回的数据格式解析
AFHTTPResponseSerializer(基类):不解析数据
AFJSONResponseSerializer:解析JSON数据格式
AFXMLParserResponseSerializer:解析XML数据格式
二、XML
A、XML简单介绍
1.XML是什么:XML即可扩展标记语言(eXtensible Markup Language)
2.XML作为一种数据格式,主要用于描述数据,存储数据
3.一个常见的XML数据一般由以下部分组成
文档声明
元素节点(Element)
属性(Attribute)
4.XML解析:通过解析XML格式,提取XML所描述的数据
5.XML主要有两种解析方式:DOM和SAX
DOM解析:读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值。
SAX解析:是基于事件通知的模式,一边读取XML文档一边处理,不必等整个文档加载完之后才采取操作,一边读取节点,一边处理节点
DOM解析适用于小数据量的XML,SAX解析适用于大数据量的XML
6.XML解析框架:
iOS SDK提供:NSXMLParser和libxml2两个类库
第三方框架:TBXML、TouchXML、KissXML、TinyXML和GDataXML
B、KissXML的使用
1.KissXML的解析方式是DOM解析、依赖于libxml框架、适合小量XML读取
2.支持XPath查找节点、支持读取、写入XML
3.使用KissXML必须导入libxml2.2ylib框架
4.在Header Search Paths中添加此路径:/usr/include/libxml2
C、KissXML写XML
写XML的学习内容:
1.创建节点对象
2.为节点添加属性
3.添加子节点
D、KissXML读取XML
读取XML有两种方式:
1.遍历每个树节点
2.通过XPath语句,查找出指定的节点
E、XPath的介绍
1.XML是树状的结构,每个节点元素都有一个路径位置,这个位置我们成为这个节点的节点路径(XPath)
2.XPath描述了节点的所在位置,支持XPath看解析框架,可以通过此XPath查找出匹配此XPath的所有节点
3.XPath是XML的查询语句
4.XPath语法:
(1)*可以匹配任意节点
NSString*xPath = @”/*/cd”;
(2)查找出任何层级下所有的cd节点
NSString*xPath = @"//cd";
(3)查找出songs底下的cd中所有price元素
NSString*xPath = @"/songs/cd/price";
(4)查找price值大于10的所有cd元素
NSString *xPath =@"/songs/cd[price>10]";
**具体实现请看下面代码**
网友评论