Alamofire的簡(jiǎn)單二次封裝。這里數(shù)據(jù)解析使用swiftyJSON
import SwiftyJSON
import Alamofire
enum RequestType {
case Get
case Post
case Put
case Delete
}
typealias complete = (Bool?,AnyObject?)->Void
class JCNetTool {
static let manage:SessionManager = {
var defHeards = Alamofire.SessionManager.default.session.configuration.httpAdditionalHeaders ?? [:]
let defConf = URLSessionConfiguration.default
defConf.timeoutIntervalForRequest = 10
defConf.httpAdditionalHeaders = defHeards
return Alamofire.SessionManager(configuration: defConf, delegate: SessionDelegate(), serverTrustPolicyManager: nil)
}()
}
extension JCNetTool {
static func requestData(requestType : RequestType,URLString : String,parameters : [String:Any]? = nil , successed : @escaping complete,failured:@escaping complete){
//獲取請(qǐng)求類型
var method : HTTPMethod?
switch requestType {
case .Get:
method = HTTPMethod.get
case .Post:
method = HTTPMethod.post
case .Put:
method = HTTPMethod.put
case .Delete:
method = HTTPMethod.delete
}
//當(dāng)前時(shí)間的時(shí)間戳
let timeInterval:TimeInterval = Date().timeIntervalSince1970
let timeStamp = Int(timeInterval)
let headers:HTTPHeaders = [
"AccessCode" : "AccessCode",
"timeStamp" : "\(timeStamp)",
"Signature" : "SHA1算法簽名"
]
//發(fā)送網(wǎng)絡(luò)請(qǐng)求
Alamofire.request(URLString, method: method!, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
//獲取返回結(jié)果
switch response.result {
case .success:
let json = JSON(response.result.value as Any)
if json["Code"] == "404"{
print("連接失敗")
}else{
successed(true, response.result.value as AnyObject)
}
case .failure:
failured(false, "連接服務(wù)器失敗" as AnyObject)
}
}
}
}
如果headers沒(méi)有特殊設(shè)置,可以在請(qǐng)求的地方設(shè)置為nil,在網(wǎng)絡(luò)訪問(wèn)是只需要傳入請(qǐng)求類型、URL地址、json參數(shù)就能很方便的使用。