Swift中網絡單例類封裝

// 網絡請求方式枚舉(case 首字母大寫)
enum SHNetworkToolsType: String {
   
case GET = "GET"
   
case POST = "POST"
}

//創建類SHNetworkTools 繼承自AFN第三方框架的AFHTTPSessionManager類
class SHNetworkTools: AFHTTPSessionManager {
   
// 全局訪問點
    static let sharedTools: SHNetworkTools = {
       
let tools = SHNetworkTools()
        // 指定反序列化格式
        tools.responseSerializer.acceptableContentTypes?.insert("text/plain”,"application/json", "text/json", "text/javascript","text/html")
        return tools
    }()
   
   
// 網絡請求支持getpost請求公共方法
    /// 請求公共方法
    ///
    /// - 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)
            })
        }
       
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章