首页 > 代码库 > 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实现网络请求