天天看點

iOS - Alamofire 網絡請求前言1、Alamofire2、Alamofire 的添加3、Alamofire 的設定4、Alamofire HTTP 認證5、Alamofire HTTP 響應狀态資訊識别6、Alamofire Timeline7、Alamofire 調試列印8、Alamofire 網絡連接配接狀态檢查9、Alamofire 異步 GET 資料請求10、Alamofire 檔案下載下傳11、Alamofire 異步 POST 資料請求12、Alamofire 檔案上傳

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 形式上傳