SuperAPI AI 工具集

ios-networking

通用与其它

查看项目

更新于 10-16 05:06

技能介绍

用途:为 iOS/macOS 应用构建、审查或改进网络代码,优先使用 URLSession 的 async/await 与结构化并发处理常规 HTTP、REST、上传、下载和流式传输;更低层协议用 Network.framework,持久后台传输用委托/任务 API。

主要能力:核心 URLSession async/await(iOS 15 起提供原生重载,后台传输仍用任务/委托 API);响应校验(URLSession 不会因 4xx/5xx 抛错,需自行校验状态码);Codable JSON 解码;下载与上传(大文件用 download(for:) 流式落盘);用 AsyncBytes(bytes(for:) 与 lines)做流式响应;基于协议的 APIClient 架构;请求中间件/拦截器与 401 令牌刷新;结构化错误类型(NetworkError、URLError 映射、解码服务端错误体);指数退避重试;分页;NWPathMonitor 网络可达性;URLSession 配置;ATS 说明。

使用方式:资料给出典型代码片段,如 let (data, response) = try await URLSession.shared.data(from: url)、bytes(for:)、download(for:)、upload(for:from:);生产客户端应注入已配置的 URLSession 而非直接用 shared;网络调用应放在 .task 或 .task(id:) 中,避免在 body/视图初始化器里发请求。

适用场景:编写或评审 iOS/macOS 网络层、API 客户端、上传下载、SSE 流、后台传输与重试/分页逻辑。

限制:后台会话不要用 data(for:) 等 async 便捷 API;重试需排除取消与 4xx(429 除外);不要在测试中直接 mock URLSession,而用 URLProtocol 或协议化客户端;不得对动态输入强解包 URL;敏感令牌存入 Keychain;模型类型应满足 Sendable。部分参考文件(urlsession-patterns.md、background-websocket.md、lightweight-clients.md、network-framework.md、file-storage-patterns.md)的具体实现细节暂未提供。