【发布时间】:2016-11-27 00:44:29
【问题描述】:
我已经开始重构我的 Alamofire api 调用,将它们保存在一个单独的文件中。唯一的问题是我也不知道如何返回状态码。
API 文件:
static func getCategories(_ catId: Int, response: @escaping (JSON) -> ()) {
let urlString = baseURL + ResourcePath.categories(catId: catId).description
Alamofire.request(urlString, encoding: JSONEncoding.default, headers: headers).responseJSON{ (responseData) -> Void in
let cCatData = JSON(responseData.result.value ?? [])
response(cCatData)
}
}
然后在我的 VC 中:
Api.getCategories(catId) { (JSON) -> () in
self.categories = JSON["catData"]
self.tableView.reloadData()
}
但我需要知道状态码是否为 200/400/404/422/500 并且我不想使用 .validate() 函数,我想传递状态码
通常,如果我将所有内容都放在同一个文件中,我会通过以下方式获取状态代码:
Alamofire.request("https://www.something", parameters: parameters, encoding: JSONEncoding.default, headers: headers)
.responseJSON() { response in
if let statusCode = response.response?.statusCode {
if statusCode == 200 {
}
}
【问题讨论】: