iOS Swift5.0使用iOS原生URLSession网络请求get/post请求工具类封装(带参数)

最近因为新手自学iOS Swift,然后写了一套聚合SDK,对网络请求那块第三方框架暂时不是很懂,也没有去深入研究他们(alfire跟moya),所以后面就选用了原生的URLSession,所以对他封装了成为一个方法,直接调用使用!
1. /// MARK:- 聚合SDK GET请求(带参数)
class func antUEGET(path: String,paras: Dictionary?,success: @escaping ((_ result: Any) -> ()),failure: @escaping ((_ error: Error) -> ())) {
        var i = 0
        var address = path
        if let paras = paras {
            for (key,value) in paras {
                if i == 0 {
                    address += "?\(key)=\(value)"
                }else {
                    address += "&\(key)=\(value)"
                }
                i += 1
            }
        }
        let url = URL(string: address.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!)
        let session = URLSession.shared
        let dataTask = session.dataTask(with: url!) { (data, respond, error) in
            if let data = data {
                if let result = try? JSONSerialization.jsonObject(with: data, options: .allowFragments){
                        success(result)
                }
            }else {
                failure(error!)
            }
        }
        dataTask.resume()
    }
2. // MARK:- 聚合SDK post请求
class func antUEPOST(path: String,paras: Dictionary?,success: @escaping ((_ result: Any) -> ()),failure: @escaping ((_ error: Error) -> ())) {
        var i = 0
        var address: String = ""
        if let paras = paras {
            for (key,value) in paras {
                if i == 0 {
                    address += "\(key)=\(value)"
                }else {
                    address += "&\(key)=\(value)"
                }
                i += 1
            }
        }
        let url = URL(string: path)
        var request = URLRequest.init(url: url!)
        request.httpMethod = "POST"
        print(address)
        request.httpBody = address.data(using: .utf8)
        let session = URLSession.shared
        let dataTask = session.dataTask(with: request) { (data, respond, error) in
            if let data = data {
                if let result = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) {
                    success(result)
                }
            }else {
                failure(error!)
            }
        }
        dataTask.resume()
    }

其他问题可以佳窝魏鑫互相学习iOS技术探讨:lixiaowu1129 一起对iOS技术更深入学习

你可能感兴趣的:(iOS Swift5.0使用iOS原生URLSession网络请求get/post请求工具类封装(带参数))