Alamofire:通过成功响应处理错误

编程入门 行业动态 更新时间:2024-10-10 21:22:19
本文介绍了Alamofire:通过成功响应处理错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我还是Alamofire和json的新手.我只想问一下如何处理成功响应中的错误.以下是api与发布请求的响应.

Hi i am still new to Alamofire and json. i just want to ask on how to handle error on success response. Below is the response of the api with post request.

{ data = { "cabinet_id" = 3289146811; "created_at" = "2018-04-11T04:53:43.288023001Z"; "user_id" = 123abc; }; }

但是有时由于服务器错误,我得到如下响应

but sometimes i got response as below due to server error

{ error = { "http_status_code" = 400; message = "Unable to proceed"; type = "rent_request_failed"; }; }

这是我所做的

let url = "myurl" let parameters = ["user_id": ""\(self.idPassed)"", "cabinet_id": "\(self.stringPassed)"] Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON { response in if (response.result.isSuccess){ if let value = response.result.value { //now success or failed always navigate to here Helper.helper.switchToNavigationViewController(Navigation: "hundredpercent") print(value) } //do your json stuff } else if (response.result.isFailure) { //Manager your error switch (response.error!._code){ case NSURLErrorTimedOut: //Manager your time out error break case NSURLErrorNotConnectedToInternet: //Manager your not connected to internet error break default: let alertt = UIAlertController(title: "Server Error!", message: "Please try again", preferredStyle: .alert) alertt.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: {(action:UIAlertAction!) in //need navigate here if error Helper.helper.switchToNavigationViewController(Navigation: "qrcodescan") })) self.present(alertt, animated: true) } } }

推荐答案

通过在alamofire请求上添加validate(statusCode: 200..<299)来验证调用API时的响应状态代码.

Validate the response status code while calling API by adding validate(statusCode: 200..<299) on alamofire request.

如果您的http状态代码位于时间间隔200-299中,它将验证成功,否则会失败.

It will validate to success if your http status code lies in interval 200-299 otherwise it go into failure case.

// Call response handler method of alamofire Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).validate(statusCode: 200..<299).responseJSON(completionHandler: { response in switch response.result { case .success(let data): Logs.DLog(object: "\n Success: \(response)") // Do your code here... case .failure(let error): Logs.DLog(object: "\n Failure: \(error.localizedDescription)") // Do your code here... } })

更多推荐

Alamofire:通过成功响应处理错误

本文发布于:2023-11-26 02:13:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1632236.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   Alamofire

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!