我正在使用ALMOFIRE 5 BETA版本进行API呼叫.我在传递正确的参数后获取无效的参数



我正在使用almofire 5 beta版本并在API响应中获得无效的参数错误我的代码是:

let parameters: [String: String] = [
            "email" : "XXXXX@gmail.com",
            "first_name" : "XXX",
            "last_name" : "XXX",
            "provider": "XXX",
            "provider_id": "XXXX",
            "age" : "XXXXX"
        ]
    AF.request("https://XXXXX.app/public/api/XXXXXX", method: .post, parameters: parameters, encoding: JSONEncoding.default,, headers: ["XXXXXX" : "accesstoken"])
        .responseJSON { error in
           print(response)
    }

原因是什么?预先感谢

您需要先检查几件事。

您可以添加"参数"对象。例如: -

let parameters: [Parameters] = [
        "email" : "XXXXX@gmail.com",
        "first_name" : "XXX",
        "last_name" : "XXX",
        "provider": "XXX",
        "provider_id": "XXXX",
        "age" : "XXXXX"
    ]

在您的heDears中,您需要首先指示参数名称。例如: -

   ["accesstoken" : "xxxxx"]

双重检查带有后端的标题名称(例如: - 访问,象征..等(

检查后端开发人员的编码类型是什么。您可以使用(urlencoding.httpbody,urlencoding.querystring,jsonencoding.default ...(

您插入两个,符号,没有任何输入键和值

尝试这个

let parameters: [String: String] = [
        "email" : "XXXXX@gmail.com",
        "first_name" : "XXX",
        "last_name" : "XXX",
        "provider": "XXX",
        "provider_id": "XXXX",
        "age" : "XXXXX"
    ]
AF.request("https://XXXXX.app/public/api/XXXXXX", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: ["XXXXXX" : "accesstoken"])
    .responseJSON { error in
       print(response)

我已经测试了您的代码,您需要通过以下编码和标头进行编码

encoding: URLEncoding.queryString,
headers: ["accesstoken": "XXXXXX"]

所以,您的最终请求将为

AF.request("https://XXXXXX.app/public/api/XXXXXX", method: .post, parameters: ["user_id": "XXXXXX"], encoding: URLEncoding.queryString, headers: ["accesstoken": "XXXXXX"]).responseJSON(completionHandler: { (response) in
            switch response.result {
            case .success(_):
                print(response)
            case .failure(let error):
                print(error.localizedDescription)
            }
        })

此代码正在工作并打印以下输出:

SUCCESS: {
    message = "XXXXXX";
    status = 1;
}

相关内容

最新更新