2017-06-22 41 views
4

我无法登录我的应用程序,它使用Oath-2,并获取unsupported_grant_type错误。我使用Alamofire POST登录数据,但无法成功。在我做错了吗?我无法解决问题。获取错误不支持授予类型?

FUNC sendFeedback()

func sendFeedback(){ 


     let parameters = [ 

      "UserName": username_textfield.text! as String, 
      "Password": password_textfield.text! as String, 
      "grant_type": "Password" as String, 
        ] 


     Alamofire.upload(multipartFormData: { multipartFormData in 

      for (key, value) in parameters { 
       multipartFormData.append((value.data(using: .utf8))!, withName: key) 
      }}, to: "http://192.168.100.5:84/Token", method: .post, headers: ["Authorization": "auth_token"], 
       encodingCompletion: { encodingResult in 
        switch encodingResult { 
        case .success(let upload, _, _): 
         upload.response { [weak self] response in 
          guard self != nil else { 
           return 
          } 
          debugPrint(response) 
//       self?.view.hideToastActivity() 
          self?.view.makeToast(message: "Send Successfull. !!!") 

         } 
         upload.uploadProgress(queue: DispatchQueue(label: "uploadQueue"), closure: { (progress) in 


         }) 
        case .failure(let encodingError): 
         print("errorss:\(encodingError)") 
        } 
     }) 

    } 

我得到400.How的状态代码这个问题要解决?

+0

尝试“密码”(小写) RFC 6749“这个规范定义了四种类型的补助 - 授权码,含蓄,资源所有者....除非否则注意,所有的协议参数名称和值是区分大小写的“ – jwilleke

+0

它不工作将密码更改为小写 –

回答

3

试试这个,这可能会帮助你

let headers = [ 
      "Content-Type": "application/x-www-form-urlencoded" 
     ] 
     let parameters = [ 

      "UserName": username_textfield.text! as String, 
      "Password": password_textfield.text! as String, 
      "grant_type": "password", 
        ] 
     //  let url = NSURL(string: "http://192.168.100.5:84/Token")! 
     Alamofire.request("http://192.168.100.5:84/Token", method: .post, parameters: parameters, encoding: URLEncoding.httpBody, headers: headers).responseJSON { (response:DataResponse<Any>) in 

      switch(response.result) { 

      case .success(_): 
       if response.result.value != nil{ 
//     print(response.result.value ??) 
        let statusCode = (response.response?.statusCode)! 
        print("...HTTP code: \(statusCode)") 
       } 
       break 

      case .failure(_): 
//    print(response.result.error ??) 
       break 

      } 
     } 
+0

是的,它的工作原理谢谢。快乐编码!!! –

+0

@BikeshThakur :-) – seon

相关问题