0

我正在尝试使用我的 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()
}
4

0 回答 0