//
网络请求方式枚举(case 首字母大写)
enum
SHNetworkToolsType:
String
{
case GET = "GET"
case POST = "POST"
case GET = "GET"
case POST = "POST"
}
//创建类SHNetworkTools 继承自AFN第三方框架的AFHTTPSessionManager类
class
SHNetworkTools:
AFHTTPSessionManager
{
// 全局访问点
static let sharedTools: SHNetworkTools = {
let tools = SHNetworkTools()
// 全局访问点
static let sharedTools: SHNetworkTools = {
let tools = SHNetworkTools()
//
指定反序列化格式
tools.responseSerializer.acceptableContentTypes?.insert("text/plain”,"application/json",
"text/json",
"text/javascript","text/html")
return
tools
}()
// 网络请求支持get和post请求公共方法
/// 请求公共方法
///
/// - parameter type: 请求方式
/// - parameter urlString: 请求url
/// - parameter parameters: 请求参数
/// - parameter success: 成功的闭包
/// - parameter failure: 失败的闭包
func request(type: SHNetworkToolsType, urlString: String, parameters: AnyObject?, success: (response: AnyObject?)->(), failure: (error: NSError)->()){
// get请求
if type == .GET {
GET(urlString, parameters: parameters, progress: nil, success: { (_, res) -> Void in
success(response: res)
}, failure: { (_, err) -> Void in
failure(error: err)
})
}else {
// post 请求
POST(urlString, parameters: parameters, progress: nil, success: { (_, res) -> Void in
success(response: res)
}, failure: { (_, err) -> Void in
failure(error: err)
})
}
}
}()
// 网络请求支持get和post请求公共方法
/// 请求公共方法
///
/// - parameter type: 请求方式
/// - parameter urlString: 请求url
/// - parameter parameters: 请求参数
/// - parameter success: 成功的闭包
/// - parameter failure: 失败的闭包
func request(type: SHNetworkToolsType, urlString: String, parameters: AnyObject?, success: (response: AnyObject?)->(), failure: (error: NSError)->()){
// get请求
if type == .GET {
GET(urlString, parameters: parameters, progress: nil, success: { (_, res) -> Void in
success(response: res)
}, failure: { (_, err) -> Void in
failure(error: err)
})
}else {
// post 请求
POST(urlString, parameters: parameters, progress: nil, success: { (_, res) -> Void in
success(response: res)
}, failure: { (_, err) -> Void in
failure(error: err)
})
}
}
}
本文介绍了如何在Swift中利用AFNetworking框架封装一个网络单例类,包括定义网络请求方式的枚举,创建继承自AFHTTPSessionManager的SHNetworkTools类,并实现GET和POST请求的公共方法。通过这个单例,可以方便地进行网络请求操作。
5291

被折叠的 条评论
为什么被折叠?



