Alamofire.Ошибка.Ответ на проверку причины сбоя.Неприемлемый код состояния (500))

#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 Нет, я это исправил, параметры, которые были переданы, были необязательными, поэтому каждый раз сервер отвечал неприемлемыми кодами состояния!