Swift 2.3 【封装网络请求业务类 AFNetworking/ Alamofire】
来源:互联网 发布:python编写购物车程序 编辑:程序博客网 时间:2024/05/16 14:57
对于网络请求类AFNetworking,在Swift中应该怎样使用和封装一个业务类呢?
上期我们讲到如何在OC中封装一个网络请求的业务类,今天提供一下Swift发送网络请求的业务类写法。提供 AFNetworking 和 Alamofire 两种框架网络请求。
其实两个框架本质一样,均出自一个作者,安装可到 github 去下载或者使用 CocoaPods 集成。个人推荐使用 AFNetworking,因为 Alamofire 提示不太好,很多函数如果不知道名称就不知道如何调用。
读者可以结合OC的网络请求业务类封装去理解本文,传送门:
iOS 【network-封装业务类AFNetworking(AFHTTPSessionManager)】
代码描述:
一、AFNetworking
① 封装业务类
//// WZYHTTPTools.swift// PhotoBrowser//// Created by 王中尧 on 16/8/15.// Copyright © 2016年 wzy. All rights reserved.//import UIKitimport AFNetworkingenum WZYRequestMethod { case GET case POST}class WZYHTTPTools: AFHTTPSessionManager { static let shareSessionManager: WZYHTTPTools = { let tools = WZYHTTPTools() // 往Set里面插入数据的特有方式 tools.responseSerializer.acceptableContentTypes?.insert("text/html") return tools }() }extension WZYHTTPTools { // 请求数据操作(GET/ POST) func request(method: WZYRequestMethod, urlString: String, parameters: [String: AnyObject], progress: (progressResult: NSProgress?) -> (), success: (successResult: AnyObject?) -> (), error: (errorResult: NSError?) -> ()) { // 进度回调闭包 let progressCallback = { (progressData: NSProgress) in progress(progressResult: progressData) } // 成功结果回调闭包 let successCallback = { (task: NSURLSessionDataTask, successData: AnyObject?) in success(successResult: successData) } // 失败错误信息回调闭包 let failureCallback = { (task: NSURLSessionDataTask?, errorData: NSError) in error(errorResult: errorData) } if method == .GET { GET(urlString, parameters: parameters, progress: progressCallback, success: successCallback, failure: failureCallback) } else { POST(urlString, parameters: parameters, progress: progressCallback, success: successCallback, failure: failureCallback) } } }
② 如何使用(只写了调用代码)
let dict = ["wzy": "laolao"]WZYHTTPTools.shareSessionManager.request(.GET, urlString: "http://120.25.226.186:32812/login?username=xxx&pwd=xxx", parameters: dict, progress: { (progressResult) in print((progressResult?.completedUnitCount)! / (progressResult?.totalUnitCount)!) }, success: { (successResult) in print(successResult) }) { (errorResult) in print(errorResult)}
二、Alamofire
① 封装业务类
//// WZYHTTPTool.swift// WZYBaisiSwift//// Created by 王中尧 on 16/8/14.// Copyright © 2016年 wzy. All rights reserved.//import UIKitimport Alamofireenum WZYHTTPToolMethod: String { case GET = "GET" case POST = "POST"}class WZYHTTPTool: NSObject {}extension WZYHTTPTool { class func request(method: WZYHTTPToolMethod, urlStr: String, params: [String: AnyObject]? = nil, finished:(successData: AnyObject?, error: NSError?) -> ()) { if method == .GET { // GET 请求 Alamofire.request(.GET, urlStr, parameters: params).responseJSON(completionHandler: { response in if response.result.isSuccess { finished(successData: response.result.value, error: nil) } else { finished(successData: nil, error: response.result.error!) } }) } else { // POST 请求 Alamofire.request(.POST, urlStr, parameters: params).responseJSON(completionHandler: { response in if response.result.isSuccess { finished(successData: response.result.value, error: nil) } else { finished(successData: nil, error: response.result.error!) } }) } } }
② 如何使用
let dict = ["laolao": "wzy"] WZYHTTPTool.request(.GET, urlStr: "http://120.25.226.186:32812/login?username=xxx&pwd=xxx", params: dict) { (successData, error) in guard error == nil else { print(error) return } print(successData)}
1 0
- Swift 2.3 【封装网络请求业务类 AFNetworking/ Alamofire】
- Swift 3.0 【Swift 3.0 环境下使用 AFNetworking 封装网络请求业务类】
- Swift 中的网络请求问题 OC(AFNetworking) && Swift(Alamofire)
- Swift网络请求库Alamofire
- Swift 之 Alamofire 网络请求、取消请求
- 封装网络请求(AFNetworking)
- Swift-->Http网络请求(NSURLSession, Alamofire)
- swift网络请求封装
- SWIFT闭包,介绍,使用(ALAMOFIRE封装 异步请求)
- Swift网络请求库 Alamofire 检测网络状态
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求(一)
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- Alamofire网络库基础教程:使用 Alamofire 轻松实现 Swift 网络请求
- iOS网络请求工具oc版,swift版基于AFNetworking的简单封装
- Android 四大核心组件之Activity
- Codeforces Round #341 (Div. 2) C. Wet Shark and Flowers(期望)
- Speex 回声消除接口介绍
- 基于MSM实现nginx负载均衡+tomcat集群+memcached(session共享)
- JDBC
- Swift 2.3 【封装网络请求业务类 AFNetworking/ Alamofire】
- GIT warning: remote HEAD refers to nonexistent ref, unable to checkout.
- POJ 1511 邀请卡
- 如何获取openid
- Java:单例模式的七种写法
- 遇到Linux性能问题,实用的检查命令
- JavaScrip学习笔记3--event事件、拖拽
- tomcat的基本使用
- 2015年10月26号 广播和服务