在 iOS 中进行网络请求和解析数据可以使用 URLSessionJSONSerialization

首先,在你的 iOS 项目中创建一个类,例如 'OpenAIManager',用于处理网络请求和数据解析。在这个类中,你可以定义一个方法来发送网络请求和解析数据。

import Foundation

class OpenAIManager {
    private let apiKey: String

    init(apiKey: String) {
        self.apiKey = apiKey
    }

    func fetchData(completion: @escaping (Result<Data, Error>) -> Void) {
        guard let url = URL(string: 'https://api.openai.com/data') else {
            completion(.failure(NSError(domain: 'Invalid URL', code: 0, userInfo: nil)))
            return
        }

        var request = URLRequest(url: url)
        request.addValue(apiKey, forHTTPHeaderField: 'Authorization')

        let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
            if let error = error {
                completion(.failure(error))
                return
            }

            guard let data = data else {
                completion(.failure(NSError(domain: 'No data received', code: 0, userInfo: nil)))
                return
            }

            completion(.success(data))
        }

        task.resume()
    }

    func parseData(data: Data) -> Result<[String: Any], Error> {
        do {
            guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else {
                throw NSError(domain: 'Invalid JSON', code: 0, userInfo: nil)
            }
            return .success(json)
        } catch {
            return .failure(error)
        }
    }
}

然后,在你的视图控制器中,你可以调用 'OpenAIManager' 类的方法来发送网络请求和解析数据。

class ViewController: UIViewController {
    let openAIManager = OpenAIManager(apiKey: 'YOUR_API_KEY')

    override func viewDidLoad() {
        super.viewDidLoad()

        openAIManager.fetchData { [weak self] result in
            switch result {
            case .success(let data):
                if let jsonResult = self?.openAIManager.parseData(data: data) {
                    switch jsonResult {
                    case .success(let json):
                        // 在这里处理解析后的数据
                        print(json)
                    case .failure(let error):
                        // 解析数据失败
                        print(error)
                    }
                }
            case .failure(let error):
                // 网络请求失败
                print(error)
            }
        }
    }
}

记得将 'YOUR_API_KEY' 替换为你的 OpenAI API 密钥。这个例子中的代码会发送一个 GET 请求到 'https://api.openai.com/data',并使用提供的 API 密钥进行身份验证。然后,它会解析返回的数据并在控制台打印出来。

请注意,这个例子中的代码是基于 Swift 语言编写的,如果你的项目使用 Objective-C,你可以使用 NSURLSessionNSJSONSerialization 来实现相同的功能。

iOS 使用 OpenAI API 获取数据:网络请求、解析和示例代码

原文地址: https://www.cveoy.top/t/topic/qm1c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录