我正在尝试使用我的 userDetails 对象作为输入的 URLSession 进行简单的登录发布请求,并且请求是内容类型"application/x-www-form-urlencoded",作为响应,我应该得到一个“访问令牌”的对象"refresh token","userdetails"... 但我不断得到:
错误 = “unsupported_grant_type”
对邮递员的请求有效,但是当我在我的项目中提出请求时出现了问题。我在这里做错了什么?API 团队说输入对象必须是正确的,这正是来自邮递员的。
func loginUser() {
/// login request here
let url = URL(string: EndPoint.loginUser)!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
let userData: [String: Any] = [
"UserName": "myUserEmail",
"Password": "myPassword",
"grant_type": "password"
]
guard let httpBody = try? JSONSerialization.data(withJSONObject: userData, options: .prettyPrinted) else { return }
request.httpBody = httpBody
let session = URLSession.shared
session.dataTask(with: request) { (data, urlResponse, error) in
if let data = data {
do {
let jsonData = try JSONSerialization.jsonObject(with: data, options: [])
print(jsonData)
} catch let error {
debugPrint(error.localizedDescription)
}
}
}.resume()
}