当我们通过CocoaPods下载完AFN框架之后,我们想在工程中去应用它我们需要加一个import的头文件 import AFNetworking
我们怎么去找这个头文件就是在我们这个项目中去寻找
具体写法如下所示
import UIKit
//导入头文件
import AFNetworking
//定义请求的枚举
enum ZXRequestMethod :String {
case GET = "GET"
case POST = "POST"
}
class NetworkTools: AFHTTPSessionManager {
//单例写法,设置工具类
static let sharedTools :NetworkTools = {
let tools = NetworkTools(baseURL: nil)
tools.responseSerializer.acceptableContentTypes?.insert("text/html")
return tools
}()
}
extension NetworkTools {
func request(method:ZXRequestMethod,URLString:String,parameters:[String: AnyObject]?,finished:@escaping (_ result:AnyObject?,_ error:Error?)->())
{
//success的闭包的写法,需要和get请求中闭包的参数是一样的
let success = {
(task:URLSessionDataTask?,result:Any?) -> Void
in
finished(result as? AnyObject,nil)
}
//failure的写法,这里需要和我们在get请求中的闭包的参数是一样的
let failure = {
(task:URLSessionDataTask?,error:Error)-> Void
in
finished(nil,error)
}
//在get请求和post请求中其实成功和失败的回调函数基本一致,所以我们可以把它抽出来,下面的代码就比较少了
if(method == ZXRequestMethod.GET)
{
get(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
}
else
{
post(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
}
}
}