一AFNetworking簡介
AFNetworking是一個在IOS開發中使用非常多網絡開源庫,適用於iOS以及Mac
OS X. 它構建於在(apple ios開發文檔)NSURLConnection, NSOperation,以及其他熟悉的Foundation技術之上。它擁有良好的架構,豐富的api,以及模塊化構建方式,使得使用起來非常輕松.
AFURLConnectionOperation:繼承自
NSOperation 實現瞭NSURLConnection 的代理方法.
AFHTTPRequestOperation:
繼承自 AFURLConnectionOperation的子類,當request請求使用的協議為HTTP和HTTPS時使用,它封裝瞭用於決定request是否成功的狀態碼和內容類型.
AFJSONRequestOperation:
繼承自AFHTTPRequestOperation,用於下載和處理json response數據.
AFXMLRequestOperation:繼承自AFHTTPRequestOperation,用於下載和處理xml
response數據.
AFPrZ喎?/kf/ware/vc/” target=”_blank” class=”keylink”>vcGVydHlMaXN0UmVxdWVzdE9wZXJhdGlvbjq8zLPQ19RBRkhUVFBSZXF1ZXN0T3BlcmF0aW9uLNPD09rPwtTYus20psDtcHJvcGVydHkKIGxpc3QgcmVzcG9uc2XK/b7dLgoKQUZIVFRQQ2xpZW50OsrH0ru49rfi17DBy7v509podHRw0K3S6bXEzfjC59Om08OzzNDytcS5q7myvbvB98Sjyr0usPy6rAoKICAgICAgIDEut6LG8Lv509q4+cK3vra1xMq508O7+bG+tcR1cmzP4LnYwre+tsC01rvX9nJlcXVlc3QKCjIuzqpyZXF1ZXN019S2r8ztvNPJ6NbDaHR0cCBoZWFkZXJzLgoKMy7KudPDaHR0cCC7+bSh1qTK6bvy1d9PQXV0aMC00enWpHJlcXVlc3QKCjQuzqrTyWNsaWVudNbG1/e1xHJlcXVlc3RzudzA7dK7uPZOU09wZXJhdGlvblF1ZXVlCgo1LrTTTlNEaWN0aW9uYXJ5yfqzydK7uPay6dGv19a3+7Suu/JodHRwIGJvZGllcy4KCjYutNNyZXF1ZXN01tC5ub2otuCyv7z+Cgo3LtfUtq+1xL3izvZodHRwIHJlc3BvbnNlyv2+3c6qz+DTprXEse3P1sr9vt0KCjgu1NrN+MLnv8m079DUsuLK1NPDvOC/2LrNz+zTprHku68uCgo8YnI+CgoK16KjuiC52be9yrnTw87EtbXLtcP3o7ogCiAgaHR0cDovL2NvY29hZG9jcy5vcmcvZG9jc2V0cy9BRk5ldHdvcmtpbmcvMS4zLjAvCgo8YnI+CgoKPHN0cm9uZz62/iC809TYtb2/qreiu7e+s9bQPC9zdHJvbmc+Cgo8YnI+CgoKPHN0cm9uZz4xLs/C1NhBRk5ldHdvcmtpbmc8L3N0cm9uZz4KCiAgICBodHRwczovL2dpdGh1Yi5jb20vQUZOZXR3b3JraW5nL0FGTmV0d29ya2luZzxicj4KCgo8YnI+Cgo8c3Ryb25nPjIuveLRubrzvatBRk5ldFdvcmtpbmfOxLz+vNDNz8jrz+7Ev7mks8zW0MilPC9zdHJvbmc+CgogICAgICAgICAgICAgPGltZyBzcmM9″/uploadfile/Collfiles/20140505/2014050509013137.jpg” alt=”\”>
3.添加SystemConfiguration和MobileCoreServices 框架
4.在預編譯頭文件中添加相關的頭文件
#ifdef __OBJC__
#import
#import
#import
#import
#endif
註意:該類庫需要在 ARC 的環境下 ,在非ARC 的工程中 ,添加 -fobjc-arc
四 使用代碼
詳見: https://github.com/ZhangzheBJUT/IOSProject/tree/master/NetworkTool
ZZUtilNetWork.h和ZZUtilNetWork.m是對AFNetworking使用簡單封裝。
五 小結
AFNetworking的基礎部分是 AFURLConnectionOperation,它是一個 NSOperation subclass,網絡部分由 NSURLConnection 完成,實現瞭
NSURLConnection 相關的代理方法,然後利用 NSOperation 的 state (isReady→isExecuting→isFinished) 變化來進行網絡控制。網絡請求是在一個指定的線程(networkRequestThread)完成。
AFURLConnectionOperation 是一個很純粹的網絡請求 operation,可以對他進行 start/cancel/pause/resume 操作,可以獲取對應的 NSURLRequest 和 NSURLResponse 數據。支持 NSInputStream/NSOutputStream,提供瞭 uploadPress 和 downloadProgress 以方便其他使用。
AFHTTPRequestOperation 是 AFURLConnectionOperation 的子類,針對 HTTP+HTTPS 協議做瞭一層封裝,比如 statusCode、Content-Type 等,添加瞭請求成功和失敗的回調 block,提供瞭
addAcceptableContentTypes: 以方便上層使用。