Swift 3 Alamofire有时会失败

时间:2017-05-09 09:11:10

标签: swift response alamofire

Alamofire.request(NEWS_FEED_URL).responseJSON { response in
        guard let newsResponse = response.result.value as? [[String:String]] else{
            print("Error")
            return
        }
        print("JSON: \(newsResponse)")

这是我从服务器获取响应的alamofire代码。大部分时间它工作正常,但有时它失败并打印错误。即使我在故障块中粘贴print(" JSON:",newsResponse),它也会显示响应,但它不会进入成功块。我还打印一次状态代码。它给了我200.我的互联网工作正常,相关的网址正在给邮递员回复。但有时它不起作用的原因?

1 个答案:

答案 0 :(得分:0)

尝试此方法

   func apiRequest(method:String, urlMethod:String, parametersDictionary:NSMutableDictionary, success:@escaping successDictionaryBlock, failure: @escaping failBlockErrorMessage){
            let requestUrl = "Request URL"


            Alamofire.request(requestUrl, method: .post, parameters: (parametersDictionary as NSDictionary) as? Parameters , encoding: JSONEncoding.default, headers: nil).responseJSON { response in
                print(response)
                print(requestUrl)

                if(response.result.error == nil){

                    if((response.response?.statusCode)! < 500){

                        if(response.response?.statusCode == 200){

                            if let JSON = response.result.value {

                                print(JSON)
                                let dict = JSON as! NSDictionary
                                let status :Bool = dict["status"] as! Bool

                                if(status){
                                    success(dict)
                                }else{
                                    failure(dict["message"] as! String)
                                }
                            }
                        }else{
                            failure("Something went wrong please try again")
                        }
                    }else{
                         failure("Something went wrong please try again")
                    }
                }
            }
        }