Swift:
下载网页
How to: 怎样做?
下载文本内容
import Foundation
let url = URL(string: "https://www.example.com")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("错误: \(error)")
} else if let data = data, let string = String(data: data, encoding: .utf8) {
print(string)
}
}
task.resume()
示例输出
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</html>
Deep Dive 深入了解
下载网页的历史开始于互联网的早期,那时只需简单的HTTP GET 请求。现在,有多种方法来实现:URLSession
是 Swift 中的现代方法,适用于完成这项任务。它提供异步API,允许多线程处理,而且它是可定制的。替代方法包括 NSURLConnection
(现已弃用)、第三方库(如 Alamofire)。
网络请求会涉及响应处理,这就是为什么正确处理回调和错误至关重要。回调中的 data
携带着下载内容,response
提供了请求的元数据,error
则包含了请求过程中出现的任何错误信息。