Alamofire 4.0踩坑

引子

之前在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)
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...