快速使用urlencoded发送查询字符串参数的正确方法是什么?

时间:2018-09-21 14:39:33

标签: swift alamofire url-encoding

我需要请求此URL

ttps://testfalen.de/auth?response_type=code&redirect_uri=https%3A%2F%2Ftestfalen.de%2Fcallback&client_id=testfalen.de&nonce=e0d663ff488c1e21e99e36f085744780&state=4007c5a94e8a1e22a91c138d070a0f6a&scope=openid+profile+groups

所以我这样创建请求

let paramsAuth = [
Constants.Params.PARAM_RESPONSE_TYPE: response_type, 
Constants.Params.PARAM_REDIRECT_URI: redirect_uri, 
Constants.Params.PARAM_CLIENT_ID: client_id, 
Constants.Params.PARAM_NONCE: nonce, 
Constants.Params.PARAM_STATE: state, 
Constants.Params.PARAM_SCOPE: scope]

Alamofire.request(Constants.EndPoints.AUTH, parameters: paramsAuth, encoding: URLEncoding.queryString).responseData { response in

这是我正在发送的请求

URL: https://testfalen.de/auth?client_id=testfalen.de&nonce=85e5e6ae42864da57cfa7e50ccde5d6f&redirect_uri=https%253A%252F%252Ftestfalen.de%252Fcallback&response_type=code&scope=openid%2Bprofile%2Bgroups&state=38f16746819dbe1a57933612a12c2390

我总是会收到此错误:

error=invalid_scope&error_description=Missing+required+scope%28s%29+%5B%22openid%22%5D.

有人可以帮助我了解问题是否出在我正在使用的编码类型,还是问题出在“ +”到“%2B”符号的转换上,因为我在其他页面上看到了'%2B'是正确的编码。

谢谢。

0 个答案:

没有答案