【问题标题】:iOS Swift 2 - Alamofire print response value when FailureiOS Swift 2 - 失败时的 Alamofire 打印响应值
【发布时间】:2016-04-24 02:22:30
【问题描述】:

我正在为我的 http 请求使用 Alamofire,但我无法从未通过验证的请求中获取错误消息

Alamofire.request(method, url, headers: headers, parameters: parameters, encoding: encoding)
            .validate(statusCode: 200..<300)
            .responseJSON { response in

                switch response.result {
                case .Success:
                    // response.result.value returns JSON

                case .Failure(let error):
                    // response.result.value returns nil
                }
        }

如果我收到错误代码 400 和其他错误代码,我如何获取数据 (JSON)。即使请求不成功,API 也会在正文中发送数据。

【问题讨论】:

标签: ios swift alamofire


【解决方案1】:

正如 SaiCYLi 一样,获取响应数据的唯一方法是避免使用 validate。
请参阅 Alamofire 中的 Result.swift。
有拦截器。

public var value: Value? {
    switch self {
    case .Success(let value):
        return value
    case .Failure:
        return nil
    }
}

我想给你评论而不是回答。但我的声望低于 50。对不起。

【讨论】:

    【解决方案2】:

    只需删除您对状态码的验证

    代码:

    Alamofire.request(method, url, headers: headers, parameters: parameters, encoding: encoding)
          .responseJSON { 
          response in
                let statusCode = response.response.statusCode
                switch statusCode {
                case 200..<300:
                    // Success
                case 404:
                    // not found
                default: 
                    // something else
                }
        }
    

    【讨论】:

    • 这个解决方案有效,我知道这个但我想使用验证
    猜你喜欢
    • 1970-01-01
    • 2020-06-20
    • 2018-10-14
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2023-04-05
    相关资源
    最近更新 更多