網絡編程二
一、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 = @"http://cd";
(3)查找出songs底下的cd中所有price元素
NSString*xPath = @"/songs/cd/price";
(4)查找price值大于10的所有cd元素
NSString *xPath =@"/songs/cd[price>10]";
**具體實現請看下面代碼**