// // MoyaConfig.swift // fiveConstant // // Created by 李建 on 2023/1/17. // import Foundation import Moya import HandyJSON import SwiftUI let BASE_URL = "https://app.yongxulvjian.com" /// 定义返回的JSON数据字段 let RESULT_CODE = "code" //状态码 let RESULT_MESSAGE = "message" //错误消息提示 enum HttpCode : Int { case success = 1 //请求成功的状态吗 case needLogin = -1 // 返回需要登录的错误码 } struct BaseModel: Codable { var code: Int var data: T? var message: String } class RequestHandlingPlugin: PluginType { public func prepare(_ request: URLRequest, target: TargetType) -> URLRequest { var mutateableRequest = request mutateableRequest.timeoutInterval = 5 return mutateableRequest.appendCommonParams(); } } let networkPlugin = NetworkActivityPlugin { change, _ in switch change { case .began: DispatchQueue.main.async { HUD.loading() } case .ended: HUD.hide() } } extension URLRequest { mutating func appendCommonParams() -> URLRequest { let request = try? encoded(parameters: commonParams, parameterEncoding: URLEncoding(destination: .queryString)) assert(request != nil, "append common params failed, please check common params value") return request! } func encoded(parameters: [String: Any]?, parameterEncoding: ParameterEncoding) throws -> URLRequest { do { return try parameterEncoding.encode(self, with: parameters) } catch { throw MoyaError.parameterEncoding(error) } } } extension URLRequest { //TODO:处理公共参数 private var commonParams: [String: Any]? { //所有接口的公共参数添加在这里例如: // return ["token": "", // "version": "ios 1.0.0" // ] return nil } }