Alamofile使用

Alamofire 是Swift版的 AFNetworking,是非常方便实用的第三方网络操作框架;

使用方法:

Alamofire.request(method: Method, URLString: URLStringConvertible, parameters: [String : AnyObject]?, encoding: ParameterEncoding, headers: [String : String]?).response (options: NSJSONReadingOptions, completionHandler: { (NSURLRequest, NSHTTPURLResponse?, NSData?, NSError?) -> Void in
//操作数据
})

但是上面方法中有些参数可以省略,基本用法如下:

Alamofire.request(.GET, "URL").responseJSON(options: NSJSONReadingOptions.AllowFragments) { (_, _, json, _) -> Void in
//操作数据
}

获取数据的方法

  • response()
  • responseString(encoding: NSStringEncoding)
  • responseJSON(options: NSJSONReadingOptions)
  • responsePropertyList(options: NSPropertyListReadOptions)

HTTP Methods

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"
}

请求需要的参数parameters

类型是一个字典 [String : AnyObject]

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") { temporaryURL, response in
let fileManager = NSFileManager.defaultManager()
if let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL {
let pathComponent = response.suggestedFilename
return directoryURL.URLByAppendingPathComponent(pathComponent!)
}
return temporaryURL
}

这些都只是Alamofire的常规使用,更加详细的使用方法其官方网站上有详细描述。