swift网络框架配置(二)

发布时间 2023-12-04 11:52:52作者: 哇哈爽

1.WMPostApiManager(post请求)

import Moya

enum WMPostApiManager {
    //登录
    case login(login_type: String, id: String, password: String)
    
}

extension WMPostApiManager: TargetType {
    var baseURL: URL {
        return URL(string: "https://api.socialnb.work/")!
    }
    
    var path: String {
        switch self {
        case .login:
            return "api/user/isLoginNew"
        }
    }
    
    var method: Moya.Method {
        return .post
    }
    
    var task: Moya.Task {
        var params = [String: Any]()
        switch self {
        case let .login(login_type, id, password):
            params["login_type"] = login_type
            params["id"] = id
            params["password"] = password
        }
        return .requestParameters(parameters: params, encoding: URLEncoding.default)
    }
    
    var headers: [String : String]? {
        let header = [
            "Content-Type": "application/x-www-form-urlencoded"
        ]
        return header
    }
    
    public func CRJSONToString(_ obj: Any) -> String? {
        if let data = try? JSONSerialization.data(withJSONObject: obj, options: []) {
            if let json = String(data: data, encoding: .utf8) {
                return json
            }
        }
        return nil
    }
    
}