curl-d到Alamofire

在这个页面( https://django-oauth-toolkit.readthedocs.org/en/latest/rest-framework/getting_started.html )之后,我能够为我的django项目设置OAuth。

下面的curl命令给我一个令牌来访问资源。

curl -X POST -d "grant_type=password&username=<user_name>&password=<password>" -u"<client_id>:<client_secret>" http://localhost:8000/o/token/ 

但是,当我使用Alamofire发送请求时,事情有点奇怪。 这是我的代码

 Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON) .authenticate(user: client_ID, password: client_Secret) 

where参数是一个字典

 [ "password": <password>, "grant_type": password, "username": <username> ] 

使用curl命令,我可以从Django看到request.POST.items()返回参数列表。 但是,使用Alamofire,没有什么。 参数出现在request.body中!

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

提前致谢。

那么,你的curl命令是以Content-Type: application/x-www-form-urlencoded格式发布的,而你强制发布为json( .JSON )。 因为这个原因,这个请求已经作为application/json传递给了你的django,而你正在看到的是body而不是POST.items()的参数。

所以删除你的代码encoding: .JSON