所有由Steve发布的文章

小试Swift4.0 中网络请求之Alamofire

Alamofire 是一个用swift 写的HTTP 网络请求库,和OC中的AFNetworking这个网络框架是比较类似的。Alamofire是一个开源框架,点击访问Alamofire。本篇文章主要介绍Alamofire的一些基本用法。

使用环境要求

  • iOS 8.0+, macOS 10.10.0+, tvOS 9.0+ and watchOS 2.0+
  • Xcode 8.1+
  • Swift 3.0+

安装
Alamofire是基于CocoaPods包管理的,安装Alamofire,我们首先需要安装CocoaPods,在命令行输入

$ gem install cocoapods

等待CocoaPods安装完成即可,检查是否安装成功输入

$ pod —version

能看到版本信息即为安装成功,截止到目前,最新版本为1.4.0。

使用
首先在命令行进入到项目路径下面,使用命令

$ pod init

进行初始化项目,初始化完成后,在项目路径下会生成一个Podfile的文件,该文件是用来管理引入包文件的,用vim打开Podfile
打开platform 注释,引入Alamofire后,效果如下

Podfile文件引入第三方库语法,可以查看CocoaPods 官网 ,上图指定了Alamofire的版本为4.7。
然后,在项目路径下面执行

$ pod install 

即可安装我们在Podfile中指定的第三方库。
接着在需要网络请求地方导入Alamofire,

import Alamofire

我们发送一个简单的get请求

Alamofire.request(urlString).responseJSON { response in // method defaults to `.get`    debugPrint(response.request) // 返回请求URL    debugPrint(response.result) // 返回是否成功    debugPrint(response.value) // 返回请求成功数据 }

接着我们发送一个带参数的get请求

let parameters: Parameters = ["foo": "bar"]
Alamofire.request(urlString, method: .get, parameters: parameters, encoding: JSONEncoding.default)
.downloadProgress(queue: DispatchQueue.global(qos: .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)
}

这里加入了请求的编码类型,validate验证,返回数据在response.value中进行处理。
Alamofire的基本使用到这里就结束了。

更多使用方法可以参考Alamofire 4.0文档