swift网络框架配置(三)

发布时间 2023-12-04 12:28:02作者: 哇哈爽

1.WMGetApiManager(get请求)

import UIKit
import Moya

enum WMGetApiManager {
    //获取配置
    case appConfig
    //获取app信息
    case getAppInfo(phone: String)
}

extension WMGetApiManager: TargetType {
    var baseURL: URL {
        switch self {
        case .appConfig,
             .getAppInfo:
            return URL(string: "https://www.baidu.com/1")!
        }
    }
    
    var headers: [String : String]? {
        let header = [
            "Content-Type": "application/x-www-form-urlencoded"
        ]
        return header
    }
    
    var method: Moya.Method {
        return .get
    }
    
    var path: String {
        switch self {
        case .appConfig:
            return "/getappconfig"
        case let .getAppInfo(phone):
            return "/getAppInfo?phone=\(phone)"
        }
    }
    
    var task: Moya.Task {
        let params = [String: Any]()
        return .requestParameters(parameters: params, encoding: URLEncoding.default)
    }
    
    
}

2.调用

func netWorkRequestAppInfo(phone: String) {
        let api = WMGetApiManager.getAppInfo(phone: phone)
        VToast.showLoading()
        Network.request(api, dataType: Model.self, showErrorMsg: true).do(onSuccess: { [weak self] (data) in
            //返回数据
        }, onError: { error in
            VToast.showToast(msg: (error as? APIError)?.message)
        }, onDispose: {
            VToast.hideLoading()
        }).subscribe().disposed(by: disposeBag)
        
    }