加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

继承: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)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读