检查没有Alamofire的响应状态

问题描述 投票:-1回答:1

我按照教程来了解如何从Firebase中获取内容。视频中的人说你可能应该检查200的响应状态(HTTP OK)。检查这有什么好处,有没有Alamofire的方法?

代码如下所示:

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

    guard let data = data else { return }
    let image = UIImage(data: data)

    DispatchQueue.main.async {
        self.profileImage.image = image
    }

    }.resume()
}
ios swift firebase alamofire fetch
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.