Swift 面试题
目录

Swift 中如何使用 URLSession 进行网络请求?

· 约 5 分钟读完 · 第 147 / 196 章

推荐答案

本题详细解读

1. 创建 URL 对象

首先,我们需要创建一个 URL 对象来表示我们要请求的资源。URL 对象可以通过字符串初始化,但需要确保字符串是有效的 URL 格式。

2. 创建 URLSession 对象

URLSession 是用于管理网络请求的核心类。我们可以使用 URLSession.shared 来获取一个共享的单例对象,这个对象已经配置好了基本的网络请求设置。

3. 创建 URLSessionDataTask 对象

URLSessionDataTask 是 URLSession 的一个子类,用于执行 HTTP/HTTPS 请求并获取数据。我们可以通过 dataTask(with:completionHandler:) 方法来创建一个 URLSessionDataTask 对象,并在闭包中处理请求的结果。

4. 处理请求结果

在闭包中,我们需要处理三种可能的情况:

  • 错误处理:如果请求过程中发生了错误,error 参数会包含错误信息。
  • 响应状态码检查:我们需要检查 response 是否为 HTTPURLResponse 类型,并确保状态码在 200 到 299 之间,表示请求成功。
  • 数据处理:如果请求成功,data 参数会包含服务器返回的数据。我们可以使用 JSONSerialization 来解析 JSON 数据。

5. 启动任务

最后,我们需要调用 resume() 方法来启动任务。URLSessionDataTask 在创建后默认是暂停状态,必须调用 resume() 才能开始执行请求。