用Swift一步步教你封装--AFNetworking
来源:互联网 发布:农资连锁软件 编辑:程序博客网 时间:2024/05/18 01:17
首先怎么下载框架我这里就不说了,进入正题!
首先创建一个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, parameters: parameters, progress: nil, success: { (stak : NSURLSessionDataTask, 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 } }
如果你没有改配置的话,会出现以下错误
你需要需要以下info的配置,因为是可能是https
再次运行,你会拿到类似于以下数据
接下来在继续优化一下代码
// MARK:- 封装请求方法extension NetworkTools { func request(methodType : RequestType , urlString : String,parameters :[String : AnyObject],failure :(result : AnyObject? , 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, parameters: parameters, progress: nil, success: successCallBack, failure: failureCallBack) } else //POST { POST(urlString, parameters: parameters, progress: nil, success: successCallBack, failure: failureCallBack) } }}//在外面可以拿到返回的值 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { NetworkTools.shareInstance.request(.GET, urlString: "http://httpbin.org/get", parameters: ["name":"MarkTang"]) { (result, error) -> () in if error != nil { print(error) return } print(result) } }
再跑一下,可以返回参数,好了这就是最简单的封装了,下次再见,如果有疑问可以在下面回复,我看到会及时回复!
文/MarkTang(简书作者)
原文链接:http://www.jianshu.com/p/b922b7f24003
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/b922b7f24003
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
- 用Swift一步步教你封装--AFNetworking
- Swift里封装AFNetworking
- Swift---AFNetworking封装
- AFNetworking 的封装 Swift
- swift AFNetworking封装
- Swift-一步步教你上传头像
- 用swift封装了一个关于 AFNetworking的类
- swift中对AFNetWorking的简单封装
- 一步步教你用liferay
- 一步步教你用Android Google Map
- 一步步教你用VMware玩OpenWRT
- 一步步教你用Android Google Map
- 一步步教你用Android Google Map
- 一步步教你用Android Google Map
- 一步步教你用VMware玩OpenWRT
- 一步步教你用Android Google Map
- 一步步教你用VMware玩OpenWRT
- 一步步教你用Android Google Map
- 怎样做思维导图?
- MES ROCKWELL FTPC 之排序件拣料单
- redis命令
- 快速掌握 Android Studio 中 Gradle 的使用方法
- Linux字符设备驱动自动创建设备节点
- 用Swift一步步教你封装--AFNetworking
- Visual Studio2010中动态生成注释中的时间__使用宏命令
- android之通过USB插拔流程来了解android UEvent
- sh 软连接的一些操作
- 微信小程序开发之——wx.showToast(OBJECT)的使用
- Android解析XML 格式的数据
- JDK1.5新特性6-互斥锁
- ubuntu16 + jdk8 + hadoop2.7 安装
- Python入门——切片操作