Swift对Alamofire的简单封装

Gboy 2019-02-18 10:31:02 1317
本文来自 雪山飞狐_91ae ,作者 Gboy
import UIKit
import Alamofire

enum MethodType {
    case get
    case post
    case put
    case delete
}

class PDHttpSessionManager {

    static var instance : PDHttp? = nil

    class func shareManager() -> PDHttp{

        var header : HTTPHeaders = Alamofire.SessionManager.defaultHTTPHeaders
        header["Authorization"] = ""
        header.updateValue("application/json", forKey: "Accept")
        let configration = URLSessionConfiguration.default
        configration.httpAdditionalHeaders = header

        instance = PDHttp(configuration: configration)

        return instance!
    }

    func requestData(_ type : MethodType, urlString : String, parameters : [String : AnyObject]?, success : @escaping (_ responseObject : [String : AnyObject]) -> (), failure : @escaping (_ error : NSError) -> ()) -> (){
        let method : HTTPMethod

        switch type {
        case .get:
            method = .get
            break
        case .post:
            method = .post
            break
        case .put:
            method = .put
            break
        default:
            method = .get
        }

        self.request(urlString, method: method, parameters: parameters).responseJSON { (response) in
            switch response.result{
            case .success:
                if let value = response.result.value as? [String : AnyObject]{
                    success(value)
                }
            case .failure(let error):
                failure(error as NSError)
            }
        }
    }
}


作者:雪山飞狐_91ae

链接:https://www.jianshu.com/p/637423a60c7c