引子##
之前在OC开发中习惯了AFN的各种便捷操作,到了Swift中各种想办法解决数据请求和解析问题。百思不得解,终于找到了Alamofire这个第三方库,但是这个库在普通引用上与OC的直接引用有所不同,但是使用cocoaPods导入还是相同的。
导入方法##
首先我们从GitHub上下载Alamofire的最新版到本地,需要知道的是下载的文件中有Alamofire的2,3,4的各个版本的开发文档,我们对照文档即可进行数据的请求。
当然我们要注意的是它的引用方式,打开工程Alamofire的工程,我们需要关注的是它的Xcodeproj,因为我们需要使用传统的addfile将它添加到项目中,当然,即时添加到项目中了。但是你在工程中引入的时候还是会报错,所以此时,你应该添加你所引入的xcodeproj中所包含的Alamofire 的framework,具体:选中项目 TARGETS > General > Embedded Binaries > +(添加) 完成。 注意选择对应的framework,我们这里选择frameworkiOS
如图
clean,运行即可成功
利用Alamofire完成数据请求##
导入数据之后,最重要的当然是进行数据请求了。Alamofire针对Swift3推出了Alamofire4作为新的框架,对一些API进行了修改。
最简单的数据请求##
Alamofire.request("https://api.500px.com/v1/photos").responseJSON { (DataResponse) in
print(DataResponse.data)
if let Json = DataResponse.result.value{
print("Json:\\(Json) ")
}
请求结果##
{"error":"Consumer key missing.","status":401}
附复杂请求方式##
// Alamofire 4
let parameters: Parameters = ["foo": "bar"]
Alamofire.request(urlString, method: .get, parameters: parameters, encoding: JSONEncoding.default)
.downloadProgress(queue: DispatchQueue.utility) { progress in
print("Progress: \\(progress.fractionCompleted)")
}
.validate { request, response, data in
// Custom evaluation closure now includes data (allows you to parse data to dig out error messages if necessary)
return .success
}
.responseJSON { response in
debugPrint(response)
}