Swift使用Alamofire實現網絡請求


Alamofire是一個用Swift編寫的HTTP網絡庫,由此前熱門開源項目AFNetworking的的作者mattt開發,可非常簡單地用於異步網絡通信。

要獲取最新版本的 Alamofire,前往https://github.com/Alamofire/Alamofire然后單擊網頁右邊的Download ZIP按鈕。接着在 Finder 中打開起始項目文件夾,,然后將Alamofire-master文件夾拖入到您的主項目文件夾中。

打開Alamofire-master文件夾(現在它位於您的項目文件夾中),然后將Alamofire.xcodeprij文件(注意是藍色圖標!不是白色圖標!)直接拖進 Xcode 中的 AlamofireDemo 項目下面,如下圖所示:

接下來,單擊AlamofireDemo項目,進入General窗口。滾動到Embedded Binaries項,然后單擊其下方的 + 號。選擇Alamofire.framework,最后點擊Add完成添加。

 

 

生成並運行您的項目以確保沒有任何錯誤出現,然后就可以進入到下一節內容了。

要使用 Alamofire 的話,首先需要導入它。您需要在每個使用了 Alamofire 類以及函數的文件中添加這條`import`語句。

import Alamofire

 

Alamofire 是一個功能強大的,Swift 語言 HTTP 網絡開發工具包。支持各種 HTTP Method、JSON、文件上傳、文件下載和多種認證方法。

接下來我們來看具體操作

GET請求

Alamofire.request(.GET, "http://httpbin.org/get")

包含參數

Alamofire.request(.GET,
                  "http://httpbin.org/get",
                  parameters: ["foo": "bar"])

包含 Response 處理

Alamofire.request(.GET,
                  "http://httpbin.org/get",
                  parameters: ["foo": "bar"])
         .response { (request, response, data, error) in
                     println(request)
                     println(response)
                     println(error)
                   }

POST請求

let parameters = [
    "foo": "bar",
    "baz": ["a", 1],
    "qux": [
        "x": 1,
        "y": 2,
        "z": 3
    ]
]
 
Alamofire.request(.POST,
                  "http://httpbin.org/post",
                  parameters: parameters)

下載一個文件

Alamofire.download(.GET,
                  "http://httpbin.org/stream/100",
                  destination: { (temporaryURL, response) in
    if let directoryURL = NSFileManager.defaultManager()
                          .URLsForDirectory(.DocumentDirectory,
                                            inDomains: .UserDomainMask)[0]
                          as? NSURL {
        let pathComponent = response.suggestedFilename
 
        return directoryURL.URLByAppendingPathComponent(pathComponent)
    }
 
    return temporaryURL
})

上傳文件

let fileURL = NSBundle.mainBundle()
                      .URLForResource("Default",
                                      withExtension: "png")
 
Alamofire.upload(.POST,
                 "http://httpbin.org/post",
                 file: fileURL)

下載圖片

Alamofire.request(.GET, "/article/image/20150128/54c85e49bfa8d25764000f47/small_f3338d9cdf932cc3c0464dcb523361c5.jpg").response() {(_, _, data, _) in
            let image = UIImage(data: data! as NSData)
            self.imageView.image = image
        }

 

現在您已經學會了如何使用 Alamofire 操作最基本的網絡請求了。

但是有可能因為 framework 的原因  在真機上運行失敗。千萬要淡定,請看下篇!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM