教程 swift tutorial

网络请求(URLSession)

在 Swift 中,URLSession 是进行网络请求的核心工具,支持数据下载、上传和后台任务。

基本用法

使用 URLSession 创建数据任务,发送 HTTP 请求并接收响应。

swift
let url = URL(string: "https://api.example.com/data")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    if let error = error {
        print("请求失败:\(error.localizedDescription)")
        return
    }
    guard let data = data else {
        print("无数据返回")
        return
    }
    // 处理数据
    if let jsonString = String(data: data, encoding: .utf8) {
        print("返回数据:\(jsonString)")
    }
}
task.resume()

`

JSON 数据解析

结合 Codable 协议解析 JSON 数据:

swift
struct ResponseData: Codable {
    let id: Int
    let name: String
}

let task = URLSession.shared.dataTask(with: url) { data, _, error in
    guard let data = data, error == nil else { return }
    do {
        let result = try JSONDecoder().decode(ResponseData.self, from: data)
        print("解析结果:\(result.name)")
    } catch {
        print("解析错误:\(error.localizedDescription)")
    }
}
task.resume()

使用 async/await

Swift 并发支持 URLSession 的异步请求:

swift
func fetchData() async throws -> ResponseData {
    let (data, _) = try await URLSession.shared.data(from: url)
    return try JSONDecoder().decode(ResponseData.self, from: data)
}

Task {
    do {
        let response = try await fetchData()
        print("异步请求结果:\(response.name)")
    } catch {
        print("请求失败:\(error)")
    }
}

小结

掌握 URLSession 网络请求及其异步处理,是开发网络应用的基础,提升数据交互效率和用户体验。