Alamofire 是一款用swift写的用于http网络连接的库,目的是用来在swift中代替OC的AFNetworking。
使用十分简单:
1 2 3 4 5
| import Alamofire
Alamofire.request(.GET, "http://httpbin.org/get")
|
安装
须要用swift,项目必须运行在iOS 8或者更高版本iOS。OS X Mavericks或者更高版本OS上。用OC其实也可以,但是折腾很多东西……OC还是直接用AFNetworking吧~
CocoaPods
把下面这些加到Podfile
里面然后 pod install
:
1 2 3 4 5 6
| source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks!
pod 'Alamofire', '~> 1.2'
|
carthage
把下面这些加到 Cartfile
里面:
1 2
| github "Alamofire/Alamofire" >= 1.2
|
或者也可以手动安装……详情见Alamofire
用法
Alamofire所有请求都是是异步的,所以可以放心大胆的用~
发起一个连接:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import Alamofire
Alamofire.request(.GET, "http://httpbin.org/get")
```
**收到数据转为string**
```swift
Alamofire.request(.GET, "http://httpbin.org/get") .responseString { (_, _, string, _) in println(string) }
|
收到数据转为JSON
1 2 3 4 5
| Alamofire.request(.GET, "http://httpbin.org/get") .responseJSON { (_, _, JSON, _) in println(JSON) }
|
转化结果的方法:
response()
responseString(encoding: NSStringEncoding)
responseJSON(options: NSJSONReadingOptions)
responsePropertyList(options: NSPropertyListReadOptions)
Alamofire支持的HTTP方法
1 2 3 4 5 6 7 8 9 10 11 12
| public enum Method: String { case OPTIONS = "OPTIONS" case GET = "GET" case HEAD = "HEAD" case POST = "POST" case PUT = "PUT" case PATCH = "PATCH" case DELETE = "DELETE" case TRACE = "TRACE" case CONNECT = "CONNECT" }
|
使用时修改第一个参数即可:
1 2 3 4 5 6
| Alamofire.request(.POST, "http://httpbin.org/post")
Alamofire.request(.PUT, "http://httpbin.org/put")
Alamofire.request(.DELETE, "http://httpbin.org/delete")
|
加参数的网络请求:
GET请求:
1 2 3
| Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
|
POST请求:
1 2 3 4 5 6 7 8 9 10 11 12 13
| let parameters = [ "foo": "bar", "baz": ["a", 1], "qux": [ "x": 1, "y": 2, "z": 3 ] ]
Alamofire.request(.POST, "http://httpbin.org/post", parameters: parameters)
|
由于大部分网络数据都是JSON格式的,所以Alamofire搭配SwiftyJSON会比较好用
介于swift一直在升级,很多东西会经常变动。这篇文档也可能过一段时间就过时了,可以到Alamofire查看具体的改动,我也会经常来更新下博客的~