Alamofire 是 Swift 語言的 HTTP 網絡開發工具包,相當于 Swift 實作 AFNetworking 版本。當然,AFNetworking 非常穩定,在 Mac OSX 與 iOS 中也能像其他 Objective-C 代碼一樣用 Swift 編寫。不過 Alamofire 更适合 Swift 語言風格習慣(Alamofire 與 AFNetworking 可以共存一個項目中,互不影響)。Alamofire 取名來源于 Alamo Fire flower。
Alamofire 的核心主要是試圖簡化 iOS 中 HTTP 網絡連接配接,它通過使用 NSURLSession 以及 Foundation URL Loading System 來建立一個 Swift 本地的網絡通路接口,進而實作令人難以置信效率的任務。
Alamofire 功能:
Chainable Request / Response methods
URL / JSON / plist Parameter Encoding
Upload File / Data / Stream
Download using Request or Resume data
Authentication with NSURLCredential
Progress Closure & NSProgress
cURL Debug Output
Alamofire 系統需求:
Alamofire Version
Minimum iOS Target
Target Notes
3.4.x
iOS 8.0+
Xcode 7.3+ is required.
3.1.4 -> 3.3.1
Xcode 7.2+ is required.
3.1.0 -> 3.1.3
Xcode 7.1+ is required.
2.0.0 -> 3.0.1
Xcode 7.0+ is required.
1.3.0 -> 1.3.1
iOS 7.0+
Xcode 6.4 is required.
1.2.1 -> 1.2.3
Xcode 6.3 is required.
1.1.0 -> 1.2.0
Xcode 6.1 is required.
1.0.0 -> 1.0.1
Xcode 6.0 is required. For Xcode 6.1, use the xcode-6.1 branch.
Alamofire 有許多讓程式猿信服去使用它的理由。在 iOS 開發中,使用 NURLSession 是 HTTP 網絡的未來趨勢, 相比 NSURLConnection 來說,它的功能更加豐富:
背景上傳和下載下傳
暫停以及重新開始網絡操作的能力
可配置的容器(Container)
子類和私有存儲
改進的認證處理
對每個基礎連接配接進行身份驗證
多種代理模式 -- NSURLConnection 擁有異步代碼塊的基本方法, 但是不能用它們的代理,NSURLSession 具有一種混合型的方法。
對 AFNetworking 能做而 Alamofire 不能做的有以下幾點:
UIKit 擴充
TLS 驗證
NSOperation/NSURLConnection/AFURLConnectionOperation 調用
多重 HTTP 網絡請求構架
Alamofire 使用 ARC
Swift
請求逾時時間設定
HTTP 方法(Medthods)
請求參數編碼方式設定
請求頭設定
請求資料響應格式設定
Request 請求建立方式
請求任務建立方式
請求任務設定
檔案下載下傳設定
檔案上傳設定
支援以下幾種認證:
HTTP Basic
HTTP Digest
Kerberos
NTLM
手動識别
自動識别
支援的類型:
Request
Resume Data
預設支援背景方式下載下傳
指定檔案路徑方式
使用預設提供的下載下傳路徑方式
斷點續傳下載下傳方式
Alamofire 方式
Manager 方式
支援的類型:
File
Data
Stream
MultipartFormData
Data 形式上傳
MultipartFormData 形式上傳