用Swift一步步教你封装--AFNetworking

用Swift一步步教你封装--AFNetworking,第1张

概述首先怎么下载框架我这里就不说了,进入正题! 首先创建一个NewworkingTools文件 import AFNetworking//定义枚举类型enum RequestType : String { case GET = "GET" case POST = "POST"}class NetworkTools: AFHTTPSessionManager { //单例

首先怎么下载框架我这里就不说了,进入正题!

首先创建一个NewworkingTools文件

import AFNetworking//定义枚举类型enum RequestType : String {    case GET = "GET"    case POST = "POST"}class NetworkTools: AFhttpSessionManager {   //单例     static let shareInstance :NetworkTools = {        let tools = NetworkTools()        //这是给JsON序列化加一个格式        tools.responseSerializer.acceptableContentTypes?.insert("text/HTML")        return tools    }()}// MARK:- 封装请求方法extension NetworkTools {    func request(methodType : RequestType,urlString : String,parameters :[String : AnyObject],failure :(result : AnyObject?,error : NSError?) -> ()) {        //判断是那种请求 GET        if methodType == .GET{            GET(urlString,parameters: parameters,progress: nil,success: { (stak : NSURLSessionDataTask,result : AnyObject?) -> VoID in                print(result)                },failure: { (task :NSURLSessionDataTask?,error:NSError?) -> VoID in            })        }        else //POST        {            POST(urlString,result : AnyObject?) -> VoID in                },failure: { (task : NSURLSessionDataTask?,error : NSError?) -> VoID in                })        }   }}}

现在可以在外面试着调用了

overrIDe func touchesBegan(touches: Set<UItouch>,withEvent event: UIEvent?) {        NetworkTools.shareInstance.request(.GET,urlString: "http://httpbin.org/get",parameters: ["name":"MarkTang"]) { (result,error) -> () in        }    }

如果你没有改配置的话,会出现以下错误


Snip20160407_1.png

你需要需要以下info的配置,因为是可能是https


Snip20160407_3.png

再次运行,你会拿到类似于以下数据


Snip20160407_4.png

接下来在继续优化一下代码

// MARK:- 封装请求方法extension NetworkTools {    func request(methodType : RequestType,error : NSError?) -> ()) {        //1.定义成功回调的闭包        let successCallBack = { (stak : NSURLSessionDataTask,result : AnyObject?) -> VoID in            //把闭包传出去            failure(result: result,error: nil)        }        //2.定义失败的回调闭包        let failureCallBack = { (stak : NSURLSessionDataTask?,error : NSError?) -> VoID in            //把闭包传出去            failure(result: nil,error: error)        }        //3.判断是那种请求 GET 发送请求        if methodType == .GET{            GET(urlString,success: successCallBack,failure: failureCallBack)        }        else //POST        {            POST(urlString,failure: failureCallBack)        }   }}//在外面可以拿到返回的值 overrIDe func touchesBegan(touches: Set<UItouch>,error) -> () in            if error != nil {                print(error)                return            }            print(result)         }    }
再跑一下,可以返回参数,好了这就是最简单的封装了,下次再见,如果有疑问可以在下面回复,我看到会及时回复!

文/MarkTang(简书作者) 原文链接:http://www.jianshu.com/p/b922b7f24003 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 总结

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

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

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

原文地址: http://outofmemory.cn/web/1069467.html

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

发表评论

登录后才能评论

评论列表(0条)

保存