微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐