请求失败时从AlamoFire获取JSON响应

bmt22033

我是iOS和Swift的新手,正在尝试使用AlamoFire 3.4.0发出Web请求。当我的请求成功时,一切正常。但是,如果我的请求失败,则服务器将在响应主体中返回300或更大的状态码以及一些JSON,以及有关请求失败原因的更多信息。例如,我正在使用的API要求对每个请求进行身份验证。如果由于某种原因身份验证失败,我将返回401,响应正文中的JSON将为:

{"developerMessage" : "Request failed because signature was incorrect."}

我发出此请求的代码如下所示:

let headers = [
   "X-Auth-Signature" : signature
]

Alamofire.request(.GET, "https://server.com/get", headers: headers)
         .validate()
         .responseJSON { response in
             switch response.result {
             case .Success(let json)
                // process JSON response here
             case .Failure(let error)
                print("Request failed with error: \(error)")
                // how can I access the JSON in the response body from here?
             }
         }

据我了解,调用.validate()将会验证状态代码为200-299,超出此范围的所有其他内容都将导致.Failure情况。假设那是正确的,当我返回401时,如何从故障处理程序内部访问响应正文中的JSON?非常感谢!

多米尼克·文森兹(Dominik Vincenz)
case .Failure(let error)    
    if let JSON = response.result.value {
        print("JSON: \(JSON)")
    }

应该做的把戏

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档