您无法从中获取响应数据HTTPURLResponse
。它只包含标题信息。
如果要检索响应数据,则需要使用类似dataTask(with:completionHandler:)
发送请求的方法。该函数传递(Data?, URLResponse?, Error?)
给您的完成处理程序。完成处理程序的数据参数是服务器返回的数据。
例如:
import Foundation
let url = URL(string: "http://httpstat.us/500")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let data = data, let response = response as? HTTPURLResponse else {
return
}
switch response.statusCode {
case 500...599:
print(String(data: data, encoding: .utf8) ?? "No UTF-8 response data")
default:
print("not a 500")
}
}
task.resume()
编辑:根据@Rob 的建议删除了强制展开