【问题标题】:How to detect when Alamofire request is null?如何检测 Alamofire 请求何时为空?
【发布时间】:2016-12-20 14:31:33
【问题描述】:

我正在使用Alamofire 在我的Swift 应用程序上执行我的API 请求,它运行良好,但我还想检测JSON 响应何时等于null

我尝试将响应与nilNSNull 进行比较,但这些都不适合我。我也尝试过使用JSON.empty,但它似乎也不起作用。此外,我在switch 应用程序上创建了一个default 选项,试图捕捉不是successfailure 的选项。

实际上我只维护了JSON.empty 选项,但它从未进入 else 语句。

这是我现在拥有的代码:

Alamofire.request(encodedUrl!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { response in

   switch(response.result) {
       case .success(_):
          if let JSON = response.result.value as? [[String : AnyObject]]{
              if JSON.isEmpty == false{
                  //Here the code if the request returns data
              }else{
                  //Here I wanted to use the code if null is retrieved
              }
          }else{
              //The JSON cannot be converted
          }
          break

       case .failure(_):
          //Failure 
          break
   } 
}

如何处理nullAlamofire 的回复?

提前致谢!

【问题讨论】:

  • 为什么要从api返回空响应?返回空响应会好得多?像 { 响应:[ ] }
  • @BehranKankul 我的意思是有时 API 返回 null 值,我需要成为那个值,因为它也被其他应用程序使用。我只想这样,例如,如果响应是 null,检测它并向用户显示他输入应用程序的数据错误或没有与之关联的信息的消息。
  • 让您的服务器返回 notFound 或 unprocessableEntity 的状态代码,然后在您的响应中检查响应代码。如果是其中之一,您可以向用户显示存在问题的消息

标签: json swift swift3 alamofire


【解决方案1】:

根据您的代码,它将命中// The JSON cannot be converted,因为null 无法转换为[[String: AnyObject]]

【讨论】:

  • 谢谢!我认为这是我唯一没有尝试过的部分。现在我可以妥善处理了。
猜你喜欢
  • 2017-05-08
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
相关资源
最近更新 更多