按照此页面(https://django-oauth-toolkit.readthedocs.org/en/latest/rest-framework/getting_started.html),我可以为我的django项目设置OAuth。
以下curl命令为我提供了访问资源的令牌。
report
然而,当我使用Alamofire发送请求时,事情有点奇怪。这是我的代码
curl -X POST
-d "grant_type=password&username=<user_name>&password=<password>"
-u"<client_id>:<client_secret>" http://localhost:8000/o/token/
其中parameter是字典
Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON)
.authenticate(user: client_ID, password: client_Secret)
使用curl命令,我可以从Django看到request.POST.items()返回参数列表。但是,使用Alamofire,什么都没有。参数出现在request.body中!
这个问题让我抓狂。任何帮助将不胜感激!
提前致谢。
答案 0 :(得分:2)
好吧,你的curl命令是以Content-Type: application/x-www-form-urlencoded
格式发布的,而你强迫发布为json(.JSON
)。因此,请求已作为application/json
传递给您的django,而您正在查看正文中的参数而不是POST.items()
。
请从代码encoding: .JSON
中删除此内容。