Alamofire 二次封装

import Foundation
import Alamofire
import LoadingView_NHT

/// 错误时,默认提示语
var Network_DefaultErrorMessage = “操作失败,请重试!”;
/// 调用接口后,对返回数据处理需要弹窗提示时取值用的key
var Network_ShowAlertMessageKey = “message”;
/// 调用接口后,对返回数据处理时 判断是否成功用到的key
var Network_CheckSuccessKey = “code”;

///是否需要添加HTTPHeaders
var Network_NeedHeaders = true;
///HTTPHeaders
var Network_Headers:HTTPHeaders = [];

/获取headers
// func getHeader() -> HTTPHeaders? {
// var headers:HTTPHeaders = [];
// let token = Support_Common.getNSUerDefaults(byKey: “access-token”);
// if Support_Common.isNOTEmptyStr(token){
// headers[“name”] = “access-token”;
// headers[“value”] = (token as! String);
// }
// return nil;
//}

//func exec(v1: Int, v2: Int, fn: (Int, Int) -> Void) {
// fn(v1,v2)
//}

func Request_GET(urlStr:String,loading:Bool, parameters:[String:Any] ,successBlock: @escaping ([String:Any],Int) -> Void) {
Request_BASE(urlStr: urlStr, loading: loading, method: .get, parameters: parameters, successBlock: { resultInfo, resultCode in
successBlock(resultInfo,resultCode);
})
}

func Request_POST(urlStr:String,loading:Bool,parameters:[String:Any] ,successBlock: @escaping ([String:Any],Int) -> Void) {
Request_BASE(urlStr: urlStr, loading: loading, method: .post, parameters: parameters, successBlock: { resultInfo, resultCode in
successBlock(resultInfo,resultCode);
})
}
func Request_BASE(urlStr:String,loading:Bool,method:HTTPMethod, parameters:[String:Any] ,successBlock: @escaping ([String:Any],Int) -> Void) {
if loading {
LoadingView_NHT.sharedLoading().loadingAnimationStart();
}
AF.request(urlStr,method: method, parameters: parameters,headers: Network_NeedHeaders ? Network_Headers : nil).response{ response in
handleData(response: response) { success , resultCode in
if loading {
LoadingView_NHT.sharedLoading().loadingAnimationStop();
}
successBlock(success,resultCode);
} ;
};
}

///对返回信息进行处理
private func handleData(response:AFDataResponse<Data?>,successBlock: ([String:Any],Int) -> Void){
switch response.result {
case .success:
let data = response.value!!;
do {
let resultJson = try JSONSerialization.jsonObject(with: data)
var resultObject = Support_Common.changeType(resultJson) as! [String:Any];

        if resultObject[Network_ShowAlertMessageKey] == nil {
            resultObject[Network_ShowAlertMessageKey] = Network_DefaultErrorMessage;
        }
        if resultObject[Network_CheckSuccessKey] == nil {
            resultObject[Network_CheckSuccessKey] = "-10086";
        }
        let resultCode = resultObject[Network_CheckSuccessKey] as! String;
        successBlock(resultObject,Int(resultCode) ?? -10086);
    } catch  {
        print(error);
        successBlock([Network_CheckSuccessKey:"-10086",Network_ShowAlertMessageKey:Network_DefaultErrorMessage],-10086);
    }
    break
case .failure:
    /**
     AFError 错误信息
     errorDescription 错误具体描述,response.error?.errorDescription 比如:URLSessionTask failed with error: The Internet connection appears to be offline
     underlyingError 错误的详细信息,response.error?.underlyingError
     
     let error = response.error;
     let errorDescription = error?.errorDescription;
     let underlyingError = error?.underlyingError as? NSError;
     let userInfo = underlyingError!.userInfo;
     */

    let error = response.error;
    let errorDescription = error?.errorDescription ?? Network_DefaultErrorMessage;
    successBlock([Network_CheckSuccessKey:"-10086",Network_ShowAlertMessageKey:errorDescription],-10086);
    break
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值