Печать Alamofire «JSON не удалось сериализовать из-за ошибки:»

Я пытаюсь сделать почтовый запрос с некоторыми параметрами, но при выполнении запроса Alamofire выдает следующую ошибку:

JSON не может быть сериализован из-за ошибки:
Данные не могут быть прочитаны, потому что они не в правильном формате.

Вот мой код, который я пытаюсь запустить:

var parameters: [String: Any] = [:]
parameters[UserParameters.kUserId.rawValue] = self.userInfoForMe.user_id
parameters[UserParameters.kGender.rawValue] = self.userInfoForMe.gender
parameters[UserParameters.kfull_name.rawValue] = self.userInfoForMe.full_name
parameters[UserParameters.kDOB.rawValue] = self.userInfoForMe.dob

print("parameters:\(parameters)")
let userInfoDataHandler:UserInfoDataHandler = UserInfoDataHandler()
var DataJSON : JSON = JSON.null
userInfoDataHandler.postData(parameters: parameters){
responseObject, error in
if responseObject != nil{
DataJSON = JSON(responseObject!)
print(DataJSON)
}
else{
self.removeLoader(showNewController: false)
self.showAlertWithMessage(msg: ErrorContants.somethingWentWrongError)
}
}

вот мой UserDataInfoHandler:

class UserInfoDataHandler: BaseService {
init(){
super.init(controller: Controllers.mobile_pa, apiName: ApiNames.save_user_info)
}

}

и следующий мой код, для которого вызывается из базовой службы:

fileprivate func fetchData(method:String, endpoint:String,parameters: [String: Any],completionHandler: @escaping (NSDictionary?, Error?) -> ()){

//need to show loader here..

var request: DataRequest? = nil
let requestURL : String = URLConstants.baseURL + self.controller + "/" + self.apiName
switch method {
case RequestMethod.GET.rawValue:
request = Alamofire.request(requestURL, method: HTTPMethod.get, parameters: parameters)

case RequestMethod.POST.rawValue:
request = Alamofire.request(requestURL, method: HTTPMethod.post, parameters: parameters)

default:
print(ErrorContants.WentThroughSwitchCaseOf + "Base Service");
}

request?.responseJSON(completionHandler: { (response) in
//this block never gets executed as it throws error that JSON is not serialized.
self.checkForResponseAndError(response: response, completionHandler: completionHandler)
})
}

После печати моих параметров, следующий вывод,

parameters:[ "full_name": "fatin", "user_id": "42", "dob": "06-12-1994", "gender": "1"]

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

1

Решение

После нескольких часов размышлений и обсуждений с моей командой выяснилось, что с моим кодом не было никаких ошибок. Проблема была в том, что на стороне сервера были некоторые проверки, из-за которых в ответ получалась ошибка PHP, которую alamofire не может обработать (Как alamofire может обрабатывать только JSON-ответ). Пожалуйста, найдите прикрепленный скриншот для ошибки в Почтальон.введите описание изображения здесь
Таким образом, настоящая проблема была с ответом от сервера, который был Ошибка PHP в почтовом запросе. Теперь я получаю правильный ответ, так как теперь нет проблем.
Надеюсь, кто-нибудь найдет это полезным.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]