在没有Alamofire的情况下检查响应状态

时间:2018-09-04 08:12:01

标签: ios swift firebase alamofire fetch

我遵循了有关如何从Firebase中获取内容的教程。视频中的那个家伙说您可能应该检查200的响应状态(HTTP OK)。 对此进行检查有什么好处?没有Alamofire,有没有办法?

代码如下:

System.currentTimeInMillis()

1 个答案:

答案 0 :(得分:1)

我们使用的大多数API在请求内容时都会返回其自己的状态代码集。对于像您的示例这样的简单使用,不使用它就足够了,但是在大型应用程序中,代码具有其含义,并且客户端应正确处理它们。您可以从许多资源中了解状态码的优点。

您可以像这样从URLSession Task检查状态代码:

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()
}

由于HTTPURLResponseURLResponse的子类,并且负责访问有关HTTP负载的信息,因此您可以轻松地转换响应并获取statusCode