MoyaConfig.swift 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // MoyaConfig.swift
  3. // fiveConstant
  4. //
  5. // Created by 李建 on 2023/1/17.
  6. //
  7. import Foundation
  8. import Moya
  9. import HandyJSON
  10. import SwiftUI
  11. let BASE_URL = "https://app.yongxulvjian.com"
  12. /// 定义返回的JSON数据字段
  13. let RESULT_CODE = "code" //状态码
  14. let RESULT_MESSAGE = "message" //错误消息提示
  15. enum HttpCode : Int {
  16. case success = 1 //请求成功的状态吗
  17. case needLogin = -1 // 返回需要登录的错误码
  18. }
  19. struct BaseModel<T: Codable>: Codable {
  20. var code: Int
  21. var data: T?
  22. var message: String
  23. }
  24. class RequestHandlingPlugin: PluginType {
  25. public func prepare(_ request: URLRequest, target: TargetType) -> URLRequest {
  26. var mutateableRequest = request
  27. mutateableRequest.timeoutInterval = 5
  28. return mutateableRequest.appendCommonParams();
  29. }
  30. }
  31. let networkPlugin = NetworkActivityPlugin { change, _ in
  32. switch change {
  33. case .began:
  34. DispatchQueue.main.async {
  35. HUD.loading()
  36. }
  37. case .ended:
  38. HUD.hide()
  39. }
  40. }
  41. extension URLRequest {
  42. mutating func appendCommonParams() -> URLRequest {
  43. let request = try? encoded(parameters: commonParams, parameterEncoding: URLEncoding(destination: .queryString))
  44. assert(request != nil, "append common params failed, please check common params value")
  45. return request!
  46. }
  47. func encoded(parameters: [String: Any]?, parameterEncoding: ParameterEncoding) throws -> URLRequest {
  48. do {
  49. return try parameterEncoding.encode(self, with: parameters)
  50. } catch {
  51. throw MoyaError.parameterEncoding(error)
  52. }
  53. }
  54. }
  55. extension URLRequest {
  56. //TODO:处理公共参数
  57. private var commonParams: [String: Any]? {
  58. //所有接口的公共参数添加在这里例如:
  59. // return ["token": "",
  60. // "version": "ios 1.0.0"
  61. // ]
  62. return nil
  63. }
  64. }