Alamofire: isSuccess 始终为真,即使有错误代码

创建于 2015-10-11  ·  3评论  ·  资料来源: Alamofire/Alamofire

服务器正在发送响应代码 404,但看起来框架正在将其解释为成功。

代码:

Alamofire.request(.GET, Constants.Path.rootUrl + "/api/users", parameters: ["username" : usernameString, "limit":3] , headers: ["tb-token" : userToken!])
            .responseJSON { response in


                print(response.request)  // original URL request
                print(response.response) // URL response
                print(response.data)     // server data
                print(response.result)   // result of response serialization


                let results = response.result

                if let JSON = response.result.value {

                    if response.result.isSuccess == true {
                        print("Success with JSON: \(JSON)")
                        self.tableView.hidden = false

                        self.resultsDict = results.value as! NSArray

                        let resultsNumber = results.value!.count

                        self.numberOfResults.text = "Results(\(resultsNumber))"
                        self.numberOfResults.hidden = false

                        self.resultsN = resultsNumber
                        self.loadedMode = true


                        self.tableView.reloadData()
                        self.tableView.hidden = false
                    }
                }
                    else {print("error")}

        }

isSuccess 始终为真,无论服务器发回什么代码。

question response serializer

所有3条评论

默认情况下,Alamofire 会将通过响应序列化程序(在您的示例中, .responseJSON使用的JSONResponseSerializer .responseJSON )成功的任何响应注册为成功。 如果您希望验证请求的响应代码,只需在请求链中添加.validate() 。 这将确保您的响应代码介于 200 和 299 之间,包括 200 和 299。 您还可以使用文档中描述

在你的情况下:

Alamofire.request(.GET, Constants.Path.rootUrl + "/api/users", parameters: ["username" : usernameString, "limit":3] , headers: ["tb-token" : userToken!])
            .validate()
            .responseJSON { response in }

谢谢,工作就像一个魅力!

谢谢,辛苦了。 使用.validate()验证响应。
但是还有另一个问题,使用.validate()我没有得到响应值: response.result.value
有什么解决方案或解决方法吗?
谢谢

此页面是否有帮助?
0 / 5 - 0 等级