Day_Count_Memory_Days/anniversary_Project/Tool/NetworkManager.swift
2024-07-23 11:43:51 +08:00

61 lines
2.0 KiB
Swift

//
// NetworkManager.swift
// anniversary_Project
//
// Created by 16 on 2024/7/11.
//
import Foundation
import Alamofire
class NetworkManager {
static let shared = NetworkManager()
private init() {}
/// POST
/// - Parameters:
/// - url: URL
/// - parameters:
/// - headers:
/// - completion:
// func postRequest(url: String, parameters: [String: Any]?, headers: HTTPHeaders?, completion: @escaping (Result<Any, AFError>) -> Void) {
// AF.request(url,
// method: .post,
// parameters: parameters,
// encoding: JSONEncoding.default,
// headers: headers)
// .validate()
// .responseJSON { response in
// switch response.result {
// case .success(let data):
// completion(.success(data))
// case .failure(let error):
// completion(.failure(error))
// }
// }
// }
func postRequest(url: String, parameters: [String: Any]?, headers: HTTPHeaders?, completion: @escaping (Result<[String: Any], AFError>) -> Void) {
AF.request(url,
method: .post,
parameters: parameters,
encoding: JSONEncoding.default,
headers: headers)
.validate()
.responseJSON { response in
switch response.result {
case .success(let data):
if let jsonData = data as? [String: Any] {
completion(.success(jsonData))
} else {
completion(.failure(AFError.responseValidationFailed(reason: .dataFileNil)))
}
case .failure(let error):
completion(.failure(error))
}
}
}
}