iOS Swift 2 - 失败时的 Alamofire 打印响应值

Posted

技术标签:

【中文标题】iOS Swift 2 - 失败时的 Alamofire 打印响应值【英文标题】:iOS Swift 2 - Alamofire print response value when Failure 【发布时间】: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 也会在正文中发送数据。

【问题讨论】:

请在此处查看答案***.com/a/35324741/5093900 【参考方案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
            
    

【讨论】:

这个解决方案有效,我知道这个但我想使用验证

以上是关于iOS Swift 2 - 失败时的 Alamofire 打印响应值的主要内容,如果未能解决你的问题,请参考以下文章

iOS - Swift - 插入电话时的回调

在IOS中安装firebase cocoapods时的未知参数-swift

设置为 nil 或 "" 时的 UILabel 文本属性使 UILabel 从视图中消失(Swift / Autolayout / iOS9.1)

使用 Swift 将结构附加到数组(在 iOS 中失败,但在 Playgrounds 中失败)

iOS Swift 仿微信朋友圈实现图片点击放大查看

swift 验证失败时,在 UITextField 中自动显示错误图标