使用AFNetworking在Swift中请求数据

前端之家收集整理的这篇文章主要介绍了使用AFNetworking在Swift中请求数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先用桥接或pods将AFNetworking导入项目,在这不再赘述,然后创建一个单例NetWorkTools.swift

继承:AFHTTPSessionManager

import 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)
}
原文链接:https://www.f2er.com/swift/324024.html

猜你在找的Swift相关文章