Код Alamofire, закодированный с ошибкой POST-запроса с responseSerializationFailed - PullRequest
0 голосов
/ 19 сентября 2018

Выполнение запроса с помощью Alamofire (swift 4) к конечной точке api (тип с закодированным типом содержимого) и передача имени пользователя и пароля через логин.При тестировании в POSTMAN эта конечная точка работает без ошибок и возвращает действительный JSON (см. Ниже).

enter image description here

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

let headers = [
  "content-type": "application/x-www-form-urlencoded",
   "cache-control": "no-cache"
 ]
let parameters = [
   "username": "user@user.com", 
   "password": "password"
 ]
 Alamofire.request("https://xxxxx.com/api/login/", method: .post, parameters: parameters, encoding:  JSONEncoding.default, headers: headers).responseJSON { response in
   print(response)
 }

Ответ, который я получаю, таков:

FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

Любое понимание будет оценено!

1 Ответ

0 голосов
/ 19 сентября 2018

Измените JSONEncoding.default на URLEncoding.default, как показано ниже,

Alamofire.request("https://xxxxx.com/api/login/", method: .post, parameters: parameters, encoding:  URLEncoding.default, headers: headers).responseJSON { response in
   print(response)
}
...