Сетевое соединение было потеряно от Alamofire - PullRequest
0 голосов
/ 07 января 2019

Я много раз получал эту ошибку в своем проекте, и она меня очень раздражает, потому что у меня полное подключение к Интернету, хотя я получаю эту ошибку неоднократно.

enter image description here

Какое решение ...?

Я использую

Свифт - 3,3

Аламофир - 4,7,3

Телефонный код API:

class  func post(_ URL: String, withParams params: [String : AnyObject], onView parentView: UIViewController, hnadler completion: @escaping ([AnyHashable: Any]!) -> Void) {
        var URLString  = String()
        URLString = APIConstants.kServerURL + URL
        var headers = [String: String]()
        headers["Content-Type"] = "application/x-www-form-urlencoded"

        Alamofire.request(URLString,method: .post, parameters: params , headers : headers)
            .validate(contentType: ["application/vnd.api+json"])
            .responseJSON { response in
                switch response.result {
                case .success( _):
                    var completionVarible = [NSObject : AnyObject]()
                    completionVarible = response.result.value as! [AnyHashable: Any]! as [NSObject : AnyObject]
                    completion(completionVarible)
                case .failure(let error):
                    self.handleFailureResponse(Error: error as NSError?, parentView: parentView)
                }
        }
    }

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Если предупреждение появляется немедленно, вы можете попытаться изменить политику кэширования на .reloadIgnoringCacheData

0 голосов
/ 09 января 2019

Я найду одно решение этой проблемы, если вы используете Alamofire.

Сначала импортируйте Alamofire в свой общий класс, в противном случае вы можете создать отдельный класс для проверки интернет-соединения.

импорт Alamofire

class Connectivity {
    class func isConnectedToInternet() ->Bool {
        return NetworkReachabilityManager()!.isReachable
    }
}

Вызовите метод ниже перед вызовом API

if !Connectivity.isConnectedToInternet() {
            ServiceHandler.ShowAlert(message: "Check your internet connectivity.", title: "Error", parentView: self) //This is my comman method for display alert.
            return
        }
0 голосов
/ 07 января 2019

Я не знаю точно, почему возникает эта ошибка, но я также сталкивался с этой ошибкой, поэтому я нашел одно решение. Эта ошибка имеет уникальный код ошибки. Так что проверьте этот код ошибки и проигнорируйте предупреждение там, или вы можете снова попробовать этот вызов API, если этот код ошибки вы получите.

...