我在项目中多次遇到此错误,这使我非常恼火,因为尽管反复出现此错误,但我具有完整的Internet连接。
什么解决方案...?
我正在使用
Swift-3.3
Alamofire-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)
}
}
}
答案 0 :(得分:1)
如果立即出现警报,则可以尝试将缓存策略更改为 .reloadIgnoringCacheData
答案 1 :(得分:0)
我不知道为什么会发生此错误,但我也遇到了此错误,因此我提出了一个解决方案。该错误具有一些唯一的错误代码。因此,请检查该错误代码,并忽略那里的警报,否则,如果收到此错误代码,则可以再次尝试此API调用。
答案 2 :(得分:0)
如果您使用Alamofire,我会找到一种解决此问题的方法。
首先在您的普通班级中导入Alamofire,否则您可以创建一个单独的班级来检查Internet连接。
导入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
}