// // SDLApi.swift // sdlan // // Created by 安礼成 on 2024/6/5. // import Foundation struct JSONRPCResponse: Decodable { let result: T? let error: JSONRPCError? } struct JSONRPCError: Decodable { let code: Int let message: String let data: String? } struct SDLAPI { struct Upgrade: Decodable { let upgrade_type: Int let upgrade_prompt: String let upgrade_address: String } static func checkVersion(clientId: String, version: Int, channel: String) async throws -> JSONRPCResponse { let params: [String:Any] = [ "client_id": clientId, "version": version, "channel": channel ] let postData = try! JSONSerialization.data(withJSONObject: params) var request = URLRequest(url: URL(string: "http://127.0.0.1:18082/test/upgrade")!) request.httpMethod = "POST" request.addValue("application/json", forHTTPHeaderField: "Content-Type") request.httpBody = postData let (data, _) = try await URLSession.shared.data(for: request) return try JSONDecoder().decode(JSONRPCResponse.self, from: data) } }