Alamofire недопустимый тип контента json mysql - PullRequest
0 голосов
/ 19 ноября 2018

Я отправляю данные в базу данных mysql, используя alamofire, и я вижу, что данные появляются в базе данных, поэтому код работает. Однако мне не нравится ошибка или уведомление, которое я вижу в консоли Xcode, которая говорит:

responseValidationFailed (причина: Alamofire.AFError.ResponseValidationFailureReason.unacceptableContentType (ptableContentTypes: ["application / json"], responseContentType: "text / html")))

Я не очень знаком с Alamofire, но похоже, что ошибка говорит о том, что я публикую text / html, а не json. Но это не то, что я хочу, я хочу опубликовать JSON. Я не уверен, нужно ли мне сначала использовать codable и кодировать данные или в чем проблема, если есть проблема. Потому что моя другая мысль заключается в том, что .responseJSON на самом деле преобразует параметры в формат json, и поэтому проверка дает мне эту ошибку, потому что он проверяет данные до того, как они отформатированы как json?

    let url = URL(string: "http://localhost:8888/mobile/bd_booking.php")

    let parameters: Parameters = [
        "firstName": namesTxt.text,
        "email": emailTxt.text,
        "contactNo": contactNoTxt.text
    ]


    Alamofire.request(url!, method: .post, parameters: parameters)
        .validate(statusCode: 200..<300)
        .validate(contentType: ["application/json"])
        .responseJSON { response in
            switch response.result {
            case .success:
                print("Success")
            case .failure(let error):
                print(error)
            }
    }

1 Ответ

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

Недавно у меня была похожая проблема.

Я исправил ошибку, прочитав этот официальный раздел:
https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#json-encoding

Нам нужно также добавить параметры кодирования при выполнении запроса. Например: enter image description here

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

...