我们使用的大多数API在请求内容时都会返回自己的状态代码集。对于像您的示例这样的简单使用,不使用它就足够了,但是在大型应用程序中,代码具有它们的含义,客户机应该正确地处理它们。您可以从许多资源中了解状态代码的优点。
您可以从urlsession任务检查状态代码,如下所示:
guard let url = URL(string: profileImageUrl) else { return }
URLSession.shared.dataTask(with: url) { (data, response, err) in
if let err = err { print("Failed to fetch the profile image:", err); return }
//check for response status here
if let httpResponse = response as? HTTPURLResponse {
print(httpResponse.statusCode)
}
guard let data = data else { return }
let image = UIImage(data: data)
DispatchQueue.main.async {
self.profileImage.image = image
}
}.resume()
}
自从
HTTPURLResponse
是的子类
URLResponse
并负责访问有关HTTP加载的信息,您可以轻松地强制转换响应并获取
statusCode