bekomme ich einen normalen API-Aufruf mit Alamofire, und ich gebe keine Daten mit denen in Netzwerk-Manager-Klasse.Alamofire API-Anfrage wird mit responseSerializationFailed in Swift 3
Meine Networking-Klasse ist
func executeGetRequest(url:String,requestVC:UIViewController,completionHandler:@escaping (_ responseObject:Any?) -> Void!,failureHandler:@escaping (_ connectionError:NSError?) -> Void!){
//Checking internet alert
if !self.isConnectedToInternet(){
// requestVC.showAlert(kText_AppName, message: kText_NoInternet)
return
}
requestVC.showLoader()
Alamofire.request(url).responseJSON {
(response:DataResponse) in
requestVC.removeLoader()
switch(response.result) {
case .success(_):
if response.result.value != nil{
completionHandler (response.result.value)
}
break
case .failure(let error):
failureHandler (error as NSError?)
break
}
}
}
und ich rufe es von meinem Hauptklasse
kNetworkManager.executeGetRequest(url: kAppAccessTokenURL, requestVC: self, completionHandler: {
(responseObject) ->() in
print("responseObject:\(responseObject!)")
}, failureHandler: {(error)->() in
print("response object:\(error!)")
self.showAlert(message: (error?.description)!, title: kText_AppName)
if error?._code == NSURLErrorTimedOut {
//timeout here
self.showAlert(message: kText_timeout, title: kText_AppName)
}
})
Sein bekommen immer Anforderung fehl und zeigt Fehler als responseSerializationFailed
wenn ich direkt anrufen in Hauptklasse ohne Managerklasse wie
Alamofire.request(kAppAccessTokenURL).responseString { response in
Ich bin in der Lage, Antwort zu bekommen, kann mir jemand vorschlagen, wo falsch in Network-Klasse.
'Alamofire.request (kAppAccessTokenURL) .responseString' funktioniert, weil Sie Ihre Antwort ein sein Zeichenfolge. Aber wenn Sie 'Alamofire' bitten, die Antwort in json zu serialisieren, also 'Alamofire.request (url) .responseJSON' aufzurufen, dann scheitert es, weil Ihre Antwort kein JSON ist, sondern eine zufällige Zeichenfolge –
Also, wie kann man das beheben? –
Überprüfen Sie, was Sie in der Alamofire.request (kAppAccessTokenURL) .responseString erhalten und sagen Sie Ihrem Server Kerl, dass Sie diese Antwort anstelle von JSON bekommen –