使用 Swift 3 时出现错误“缺少必需的参数:grant_type”
Posted
技术标签:
【中文标题】使用 Swift 3 时出现错误“缺少必需的参数:grant_type”【英文标题】:Error 'Missing required parameter : grant_type' using Swift 3 【发布时间】:2017-07-11 11:44:34 【问题描述】:我正在使用 Twitter API,我想获取 access_Token 但我收到此错误:
"errors" : [
"message" : "Missing required parameter: grant_type",
"label" : "forbidden_missing_parameter",
"code" : 170
]
.
我的要求如下:
let dict = ["grant_type" : "client_credentials"]
requestPOSTURL("https://api.twitter.com/oauth2/token", params: dict as [String : AnyObject] , headers: ["Authorization" : "Basic " + strHeader, "Content-Type" : "application/x-www-form-urlencoded;charset=UTF-8"], success: (json) in
Helper.sharedInstance.Print(json as AnyObject)
, failure: (error) in
Helper.sharedInstance.Print(error as AnyObject)
).
func requestPOSTURL(_ strURL : String, params : [String : AnyObject]?, headers : [String : String]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void)
sessionManager.request(strURL, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON (responseObject) -> Void in
//print(responseObject)
if responseObject.result.isSuccess
let resJson = JSON(responseObject.result.value!)
success(resJson)
if responseObject.result.isFailure
let error : Error = responseObject.result.error!
failure(error)
这里我正在尝试获取 access_Token (OAuth) 但无法获取,因为上面的错误即将到来。
【问题讨论】:
那么AFWrapper
是什么?阿拉莫菲尔?也许***.com/questions/44801102/…?
是的,它是 Alamofire。
Parameters on the application/x-www-form-urlencoded MIME type are ignored. In particular, this MIME type does not support the charset parameter. 尝试删除charset
。
Alamofire 直接支持Basic Authentication。不直接加header,用Alamofire的authenticate(usingCredential:)
。
【参考方案1】:
我也遇到过类似的问题,它通过本机 NSMutableURLRequest 得到了修复。 https://***.com/a/59472862/1528061
【讨论】:
以上是关于使用 Swift 3 时出现错误“缺少必需的参数:grant_type”的主要内容,如果未能解决你的问题,请参考以下文章
Cloudinary 错误:“错误”:“消息”:“缺少必需的参数 - 时间戳”
尝试使用 Multipeer Connectivity Swift 3 Xcode8 传递 UIALERT 时出现多个错误