Alamofireで通常のAPI呼び出しを呼び出していますが、ネットワーキングマネージャークラスでそのデータを渡していません。Alamofire APIリクエストが応答時に失敗しました3
マイネットワーククラスは
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
}
}
}
であると私は私のメインクラスから
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)
}
})
そのはいつも私が直接呼び出した場合は失敗とresponseSerializationFailed
としてエラーを示す要求ばかりを、それを呼び出していますマネージャクラスなしのメインクラス
Alamofire.request(kAppAccessTokenURL).responseString { response in
私は応答を得ることができます、誰も私にネットワークのクラスで間違って取得を示唆することができます。ここで
' Alamofire.request(kAppAccessTokenURL)を見、あなたの回答になりたいので、文字列。しかし、あなたが 'Alamofire.request(url).responseJSON'を呼び出すと、応答がJSONではなくランダムな文字列であるため、' Alamofire'にjsonへの応答をシリアル化するように頼むと、 –
これを解決する方法はありますか? –
'Alamofire.request(kAppAccessTokenURL).responseString'に何が入っているのか確認し、JSONではなくこのレスポンスを受け取っていることをサーバーの担当者に伝えてください –