【问题标题】:Getting response data from Alamofire error从 Alamofire 错误中获取响应数据
【发布时间】:2016-05-29 18:48:14
【问题描述】:

我一直在我的一个 iOS 项目中使用 Alamofire,但最近在升级到 Alamofire 3.0 时,格式略有改变以返回结果。就我而言,我想调用登录​​ API 并让它返回结果。可能会发生几个错误,所以我总是在 API 结果中返回问题所在,所以如果响应为 400,我希望我的代码进入失败块,然后将来自我的 API 的消息作为一部分包含在内错误,但是当结果失败时,我似乎无法从请求中获取响应数据。

这是我的代码:

Alamofire.request(
        method,
        Constants.baseURL + route,
        parameters: fullParameters)
        .validate()
        .responseJSON { response in
            let json = JSON(response.result.value!)
            switch response.result {
            case .Success:
                completion?(json["data"])
            case .Failure(let errorData):
                failure?(errorData, json["errmsg"])
            }
    }

这里发生的情况是,当响应失败时,它会中断,因为 response.result.value 为 nil,但无论如何我希望它是从 API 返回的 JSON。另一方面,当响应成功时,它会完美运行。

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

    由于您调用validate(),Alamofire 会自动验证来自200...299 的状态代码。

    如果您不希望 Alamofire 验证您的状态码,但您想自己手动验证,您有两种选择:

    • 删除.validate() 并手动处理所有内容。
    • validate() 更改为 .validate(statusCode: yourRange) 以获得您想要允许的范围并手动处理它们。

    更多信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 2018-05-21
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      相关资源
      最近更新 更多