【问题标题】:parameter Encoder Failed because invalidRootObject?参数编码器失败,因为 invalidRootObject?
【发布时间】:2019-09-28 18:27:51
【问题描述】:

当我尝试将 JSON 字符串“parametersString”发送到 Web API 时,parameterEncoderFailed 出现问题,有人可以帮助我解决该错误消息

失败(Alamofire.AFError.parameterEncoderFailed(原因: Alamofire.AFError.ParameterEncoderFailureReason.encoderFailed(错误: Alamofire.URLEncodedFormEncoder.Error.invalidRootObject("string(\"{\n\\"authenticate\\": {\n\\"用户名\\": \\"fan.doe\\",\n\\"密码\\": \\"12345\\",\n\\"到期\\": \\"2019-05-03 18:00:00\\"\n}\n}\")"))))))

 static func Login(email:String, password:String, completion: @escaping (_ success: Bool, _ response: DataResponse<Data?>?) -> ()) {
        let urlString: 

        let parametersString = """
        {
        "authenticate": {
        "userName": "\(email)",
        "password": "\(password)",
        "expiry": "2019-05-03 18:00:00"
        }
        }
        """
         var response:DataResponse<Data?>?

        print(urlString)
        AF.request(urlString, method: .post, parameters: parametersString, encoding:  String.Encoding.utf8.rawValue,  headers: headers )
            .response { resp in
                response = resp
                print(response)
                if(response?.response?.statusCode == 200){
                    completion(true, response)

                }
                else {
                    completion(false, nil)
                }
        }

    }
}

【问题讨论】:

    标签: json swift post encoding alamofire


    【解决方案1】:

    您可能需要发送字典[String:Any]

    let parametersDic:[String:Any] = [
        "authenticate": [
        "userName": "\(email)",
        "password": "\(password)",
        "expiry": "2019-05-03 18:00:00"
    ]]
    

    【讨论】:

    • 这并不能解决问题
    • encoding: String.Encoding.utf8.rawValue更改为encoding: JSONEncoding.default
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 2014-09-30
    • 2018-10-18
    • 1970-01-01
    • 2018-02-20
    相关资源
    最近更新 更多