我正在使用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;
}