首页 > 代码库 > Swift使用Alamofire实现网络请求

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 的原因  在真机上运行失败。千万要淡定,请看下篇!!!

 

Swift使用Alamofire实现网络请求