我正在使用 JSON token 开发 iOS,但遇到了 unsupported_grant_type 错误。我正在开发的代码如下
let params = ["grant_type": "password", "username": userEmail, "password": userPassword]
let url = URL(string: "http://test/SPUSR/Token")
var request = URLRequest(url: url!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
try? request.httpBody = JSONSerialization.data(withJSONObject: params, options: [])
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task = session.dataTask(with: request) { (data, response, error) in
if let data = data {
let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String:Any]
self.token = json!!["access_token"] as? String
}
if let error = error {
print(error.localizedDescription)
}
}
task.resume()
有了 Postman,一切都运转良好。我的API是在C#技术下开发的
最佳答案
消息“unsupported_grant_type”明确告诉您您的服务器不期望该请求。您正在尝试 POST:“grant_type”:“password”,正文中的凭据 - 这意味着内容类型必须为“application/x-www-form-urlencoded”。请参阅 Postman 中的控制台。
关于ios - JSONSerialization.jsonObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49041744/