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中安装firebase cocoapods时的未知参数-swift
设置为 nil 或 "" 时的 UILabel 文本属性使 UILabel 从视图中消失(Swift / Autolayout / iOS9.1)