使用AFNetworking在Swift中请求数据
发布时间:2020-12-14 07:04:16 所属栏目:百科 来源:网络整理
导读:首先用桥接或pods将AFNetworking导入项目,在这不再赘述,然后创建一个单例NetWorkTools.swift 继承:AFHTTPSessionManager import AFNetworking //单例 static let tools: NetworkTools = { let baseUrl = NSURL( string : "https://xxx.xxx.xxx/" ) let tools
首先用桥接或pods将AFNetworking导入项目,在这不再赘述,然后创建一个单例NetWorkTools.swift继承:AFHTTPSessionManagerimport AFNetworking
//单例
static let tools: NetworkTools = {
let baseUrl = NSURL(string: "https://xxx.xxx.xxx/")
let tools = NetworkTools(baseURL: baseUrl)
//设置AFN能够接收的数据类型
tools.responseSerializer.acceptableContentTypes = NSSet(objects:"application/json","text/json","text/javascript","text/plain") as? Set<String>
return tools
}()
//提供类方法获取单例
class func shareNetworkTools() -> NetworkTools {
return tools
}
请求数据class func loadData(finished: (models:[User]?,error: NSError?) -> ()) {
let path = "baseUrl要拼接的路径"
let params = ["userId": userId]
NetworkTools.shareNetworkTools().GET(path,parameters: params,progress: { (_) -> Void in
},success: { (_,JSON) -> Void in
//打印请求数据
print(JSON)
//在这里将字典转模型
//通过闭包将请求下来的数据传递给调用者
finished(models: models,error: nil)
}) { (_,error) -> Void in
print(error)
//通过闭包吧错误信息传递给调用者
finished(models: nil,error: error)
}
}
调用的地方Request.loadData { (models,error) -> () in
if error != nil {
return
}
//打印数据模型
printf(models)
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |