swift 使用 Alamofire 网络请求

首先这是摘抄自大神的网络请求,后台非常规范的时候建议使用,我再此基础上稍微改了下,也不知道有没有弄巧成拙

headers 里面内容可看我前面的文章 iOS 获取设备信息 (OC/Swift)

import HandyJSON
import Alamofire
import CocoaLumberjack

    // MARK: 5.getter
    private static let msgNetError = "网络错误,请联网后点击重试"
    private static let msgDataError = "获取网络数据失败"
      
    private static let manager = NetworkReachabilityManager()
    
    private class var headers: HTTPHeaders {
        get {
            let head: HTTPHeaders = [
                "iphone_name": iphone_name,
                "device_name": device_name,
                "device_model": device_model,
                "device_IDFA": device_idfa,
                "system_name": system_name,
                "system_version": system_version,
                "app_version": app_version,
            ]
            return head
        }
    }
///返回数据类型
enum HTTPDataType: Int {
    case one  //单个 model
    case more //数组 model
    case text //字符串
}
///后台返回数据类型
struct netResponseData: HandyJSON {
    var code: Int = 0
    var msg: String?
    var data: Any?
}
///返回数据类型
enum HTTPDataType: Int {
    case one  //单个 model
    case more //数组 model
    case text //字符串
}
///后台返回数据类型
struct netResponseData: HandyJSON {
    var code: Int = 0
    var msg: String?
    var data: Any?
}

下面就是网络请求了,总体都放在

public class Networking {

}

返回单 model 网络请求

public class func request<T:HandyJSON>(url:String,
                                           modelType: T.Type,
                                           method: HTTPMethod = .post,
                                           parameters: [String: String] = [:],
                                           successBlock: @escaping (_ type: HTTPResultType, _ model: T?, _ msg:String) -> Void){
        var encoding:ParameterEncoding = URLEncoding.default
        if method == .post {
            encoding = JSONEncoding.default
        }
        var dict = parameters
        if token.isEmpty == false {
            dict["token"] = token
        }

        AF.request(url, method: method, parameters: dict, encoding: encoding, headers: headers).responseJSON { (data) in
            DDLogInfo("\n<请求url>:\n\(url) \n<请求参数>:\n\(String(describing: dict)) \n<请求头>:\n\(headers) \n<返回结果>:\n\(data) ")
            
            responseData(.one, data,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值