Alamofire不可接受的内容类型json mysql

时间:2018-11-19 09:11:11

标签: swift alamofire

我正在使用alamofire将数据发布到mysql数据库中,并且可以看到数据出现在数据库中,因此代码可以正常工作。但是,我不喜欢在Xcode控制台中看到的错误或提示:

responseValidationFailed(原因:Alamofire.AFError.ResponseValidationFailureReason.unacceptableContentType(acceptableContentTypes:[“ 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 :(得分:0)

最近,我遇到了类似的问题。

我通过阅读以下官方章节解决了该错误:
https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#json-encoding

在发出请求时,我们也需要附加编码参数。 例如: enter image description here

我希望您可以通过实施此方法解决当前问题。