卷曲-A到Alamofire

时间:2016-02-11 06:24:18

标签: ios django swift curl alamofire

按照此页面(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中!

这个问题让我抓狂。任何帮助将不胜感激!

提前致谢。

1 个答案:

答案 0 :(得分:2)

好吧,你的curl命令是以Content-Type: application/x-www-form-urlencoded格式发布的,而你强迫发布为json(.JSON)。因此,请求已作为application/json传递给您的django,而您正在查看正文中的参数而不是POST.items()

请从代码encoding: .JSON中删除此内容。