[swift]-AFNetworking网络封装

[swift]-AFNetworking网络封装,第1张

概述1:定义一个网络工具类,如HttpTools,NetworkTools等等 在NetworkTools.swift类中: 这里采用单例封装: import AFNetworking// 枚举方式1enum RequestType { case GET case POST}// 枚举方式2enum RequestType1 : Int { c

1:定义一个网络工具类,如httpTools,NetworkTools等等

在NetworkTools.swift类中:

这里采用单例封装:

import AFNetworking// 枚举方式1enum RequestType {    case GET    case POST}// 枚举方式2enum RequestType1 : Int {    case GET = 0    case POST = 1}// 枚举方式3enum RequestType2 : String {    case GET = "GET"    case POST = "POST"}class NetworkTools: AFhttpSessionManager {    /// let是线程安全的    static let shareInstance : NetworkTools = {       let tools = NetworkTools()        tools.responseSerializer.acceptableContentTypes?.insert("text/HTML")        return tools    }()}// MARK: - 封装请求方法extension NetworkTools {    func request(methodType : RequestType,urlString : String,parameters : [String : AnyObject],finished:(result : AnyObject?,error : NSError?) -> ()) {                // 定义成功的回调闭包:使用一个常量来接收它        let successCallBack = { (task : NSURLSessionDataTask,result : AnyObject?) in            finished(result: result,error: nil)        }                        // 定义一个失败的回调闭包:使用一个常量来接收它        let failureCallBack = { (task : NSURLSessionDataTask?,error : NSError) in            finished(result: nil,error: error)        }            // 发送网络请求        if methodType == .GET {            GET(urlString,parameters: parameters,progress: nil,success: successCallBack,failure: failureCallBack)        }else {            POST(urlString,failure: failureCallBack)        }    }}

2:在vIEwController.swift中调用网络请求接口

class VIEwController: UIVIEwController {    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        //print(NetworkTools.shareInstance)        //print(NetworkTools.shareInstance)    }        overrIDe func touchesBegan(touches: Set<UItouch>,withEvent event: UIEvent?) {        /// 外面请求接口回调        NetworkTools.shareInstance.request(.POST,urlString: "http://httpbin.org/post",parameters: ["name" : "lishengbing","age" : 106]) { (result,error) in            if error != nil {                print(error)                return            }                        print(result)        }    }    }

知识点:

1:swift中创建单例:

class NetworkTools: AFhttpSessionManager {    /// let是线程安全的    static let shareInstance : NetworkTools = {       let tools = NetworkTools()        return tools    }()}

2:swift中枚举的定义:

// 枚举方式1enum RequestType {    case GET    case POST}// 枚举方式2enum RequestType1 : Int {    case GET = 0    case POST = 1}// 枚举方式3enum RequestType2 : String {    case GET = "GET"    case POST = "POST"}

意见反馈邮件:1415429879@qq.com 欢迎你们的阅读和赞赏、谢谢

总结

以上是内存溢出为你收集整理的[swift]-AFNetworking网络封装全部内容,希望文章能够帮你解决[swift]-AFNetworking网络封装所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1073579.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存