#ios #swift #swift3 #alamofire #xcode8
#iOS #swift #swift3 #alamofire #xcode8
Вопрос:
Я получаю ошибку unacceptablStatusCode каждый раз, когда я вызываю эту функцию Alamofire 4.0.0, Swift 3, Xcode 8. Если я передам допустимый диапазон кодов состояния до 200…<500, он по-прежнему выдает ту же ошибку. Есть ли у меня какая-либо ошибка в функции, потому что предыдущие два API работают нормально или это ошибка alamofire 4.0.0???
func getTargetbyDistributor()
{
DispatchQueue.main.async {
SwiftLoader.show("Loading...", animated: true)
}
var param: [String: Any] = [String: Any]()
param = ["user_id":(UserDefaults.standard.object(forKey: "UserInformation") as! NSDictionary).value(forKey: "user_id"),"country_id":(UserDefaults.standard.object(forKey: "UserInformation") as! NSDictionary).value(forKey: "country_id"),"role_id":(UserDefaults.standard.object(forKey: "UserInformation") as! NSDictionary).value(forKey: "role_id"),"from_month_data":txtdate.text!,
"to_month_data":txtToDate.text!]
Alamofire.request(kUrlConstant "getTargetbyDistributor", method: .post , parameters: param)
.validate()
.responseJSON { response in
switch response.result {
case .success(_):
DispatchQueue.main.async {
SwiftLoader.hide()
}
let str = NSString(data: response.data!, encoding:String.Encoding.utf8.rawValue)
var jsonResult = [String:AnyObject]()
do
{
jsonResult = try JSONSerialization.jsonObject(with: response.data!, options: []) as! [String:AnyObject]
print(jsonResult)
if jsonResult["status"] as! Int == 1
{
print(jsonResult)
self.txtdate.text = ""
self.txtToDate.text = ""
self.bgScrollView.isHidden = false
self.btnNext.isHidden = false
self.PaginationView.isHidden = false
self.btnPrev.isHidden = false
self.bgScrollView.bounces = false
self.bgScrollView.bouncesZoom = false
let hight = CGFloat(((jsonResult["data"] as! NSArray).count * 40) 50)
self.bgScrollView.frame = CGRect(x: self.bgScrollView.frame.origin.x,y: self.bgScrollView.frame.origin.y,width: self.bgScrollView.frame.size.width,height: hight)
self.PaginationView.frame = CGRect(x: self.PaginationView.frame.origin.x,y: self.bgScrollView.frame.origin.y self.bgScrollView.frame.size.height 6,width: self.PaginationView.frame.size.width,height: self.PaginationView.frame.size.height)
if (((jsonResult["data"] as! NSDictionary).object(forKey: "target_data") as! NSDictionary).object(forKey: "month_data") as! NSArray).count >= 1
{
self.headerArray = (((jsonResult["data"] as! NSDictionary).object(forKey: "target_data") as! NSDictionary).object(forKey: "month_data") as! NSMutableArray)
}
if (((jsonResult["data"] as! NSDictionary).object(forKey: "target_data") as! NSDictionary).object(forKey: "data") as! NSArray).count >= 1
{
self.dataTableArray = (((jsonResult["data"] as! NSDictionary).object(forKey: "target_data") as! NSDictionary).object(forKey: "data") as! NSMutableArray)
}
self.header()
self.tblView.reloadData()
}
else
{
let alertController = UIAlertController(title: "Alert", message: jsonResult["message"] as? String, preferredStyle: .alert)
let OKAction = UIAlertAction(title: "OK", style: .default) { (action:UIAlertAction!) in
return false;
}
alertController.addAction(OKAction)
self.present(alertController, animated: true, completion:nil)
}
} catch let error as NSError {
print(str);
print(error)
DispatchQueue.main.async {
SwiftLoader.hide()
}
}
print("Validation Successful")
case .failure(let error):
print(error)
DispatchQueue.main.async {
SwiftLoader.hide()
}
}
}
}
Комментарии:
1. Вы проверили, что возвращаемый код состояния не равен>= 500?
2. Я только что заметил, что вы сказали, что 500 — это ошибка в названии. итак, 200.. <500 не поймает это, поскольку диапазон полуоткрыт
3. @TristanBurnside Нет, я это исправил, параметры, которые были переданы, были необязательными, поэтому каждый раз сервер отвечал неприемлемыми кодами состояния!