unsupported_grant_type
2016-01-19 16:52
393 查看
记得我的上篇文章( form post 和 api post )说了request的post请求问题。其中我提到了一个restframework推荐的第三方包: Django OAuth Toolkit,这个包真的是很坑爹,还被restframework第一推荐的第三方包呢,接口都不兼容api post方式,只能用form post。
api post(接口调用) 方式:发送的数据样式如下:
form post(表单提交)方式:发送的数据样式如下:
以上数据的获取,我用的是SocketTest3工具,使用如下:
![](http://img.blog.csdn.net/20160119163641905)
只需要设置 这几个点,将请求的地址指向启动SocketTest3工具的电脑,并且端口指定为9001(这个端口要写的偏一点的,写常用的端口的话,会得到一些无关本次测试的数据,所以没有必要)。
以为 我发的请求都是api post方式的 ,所以,服务器一直给我返回的是 400状态码,且 “unsupported_grant_type”。到网上查了一些,大多说的是服务器的请求的头部容量设置小了,可能存在这个问题吧,但是,我知道,自己发的请求根本就没有头部信息,怎么会超量呢,后来发现问题了。
所以说Django OAuth Toolkit 还真是坑爹啊,没办法,我只能把请求改成form表单提交的形式。
下载SocketTest3工具,请点击这里。
api post(接口调用) 方式:发送的数据样式如下:
POST / HTTP/1.1 Host: 192.168.1.44:9001 Content-Type: application/json Connection: keep-alive Accept: */* User-Agent: doDebuger/1 CFNetwork/711.3.18 Darwin/14.0.0 Content-Length: 294 Accept-Language: zh-cn Accept-Encoding: gzip, deflate { "username" : 13333333333, "password" : 111111, "client_id" : "fNm0EDIXbfuuDowUpAoq5GTEiywV8eg0TpiIVnV8", "client_secret" : "sJexq9rUQ2g2wW1CERwHtW5swr9iw1jofR2VbYyfvaJInYJWjNcvJnjsNV8mp8aiW3jjrzn55w9EKIU6KEougO2EmXY7FfAZUGjRnzyywlSnVwfkFJZLuSkcLfp3S4q4", "grant_type" : "password" }
form post(表单提交)方式:发送的数据样式如下:
POST / HTTP/1.1 Host: 192.168.1.44:9001 Connection: keep-alive Content-Length: 720 Cache-Control: no-cache Origin: chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 Content-Type: multipart/form-data; boundary=----WebKitFormBoundarynqk24w5d3HTBWjmi Accept: */* Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-CN,zh;q=0.8,en;q=0.6 ------WebKitFormBoundarynqk24w5d3HTBWjmi Content-Disposition: form-data; name="username" 13333333333 ------WebKitFormBoundarynqk24w5d3HTBWjmi Content-Disposition: form-data; name="password" 111111 ------WebKitFormBoundarynqk24w5d3HTBWjmi Content-Disposition: form-data; name="client_id" fNm0EDIXbfuuDowUpAoq5GTEiywV8eg0TpiIVnV8 ------WebKitFormBoundarynqk24w5d3HTBWjmi Content-Disposition: form-data; name="client_secret" sJexq9rUQ2g2wW1CERwHtW5swr9iw1jofR2VbYyfvaJInYJWjNcvJnjsNV8mp8aiW3jjrzn55w9EKIU6KEougO2EmXY7FfAZUGjRnzyywlSnVwfkFJZLuSkcLfp3S4q4 ------WebKitFormBoundarynqk24w5d3HTBWjmi Content-Disposition: form-data; name="grant_type" password ------WebKitFormBoundarynqk24w5d3HTBWjmi--
以上数据的获取,我用的是SocketTest3工具,使用如下:
只需要设置 这几个点,将请求的地址指向启动SocketTest3工具的电脑,并且端口指定为9001(这个端口要写的偏一点的,写常用的端口的话,会得到一些无关本次测试的数据,所以没有必要)。
以为 我发的请求都是api post方式的 ,所以,服务器一直给我返回的是 400状态码,且 “unsupported_grant_type”。到网上查了一些,大多说的是服务器的请求的头部容量设置小了,可能存在这个问题吧,但是,我知道,自己发的请求根本就没有头部信息,怎么会超量呢,后来发现问题了。
所以说Django OAuth Toolkit 还真是坑爹啊,没办法,我只能把请求改成form表单提交的形式。
下载SocketTest3工具,请点击这里。
相关文章推荐
- Android运行环境Dalvik和ART的比较
- 轮播图切换 纯html+js+css
- Django实践:个人博客系统(第八章 admin的配置)
- 条件表达式工具类
- THE HANDLER_READ_* STATUS VARIABLES
- 关于将vector以及string传递给较老的api的问题
- 如何查看Windows激活信息
- 拦截器的方法介绍(三)
- ios已上架的APP更新,使用core data的需要升级core Data数据库,这样做
- 15 个必知的 Android 开发者选项
- 检查Mac电脑是32位还是64位运行以及修改方法
- C++经典面试题
- ERROR 1820 (HY000): You must SET PASSWORD before executing this
- 安卓APP动态调试技术
- 正态分布的生成
- DFRobot的产品
- iOS:删除已经配置的类库和移除CocoaPods
- 1月19号 TextField
- MVC缓存OutPutCache学习笔记 (三) 缓存局部刷新
- linux 如何查看防火墙是否开启