unsupported_grant_type 你的名字 2021-05-12 11:51 565阅读 0赞 记得我的上篇文章( form post 和 api post )说了request的post请求问题。其中我提到了一个restframework推荐的第三方包: Django OAuth Toolkit,这个包真的是很坑爹,还被restframework第一推荐的第三方包呢,接口都不兼容api post方式,只能用form post。 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工具,使用如下: ![这里写图片描述][20160119163641905] 只需要设置 这几个点,将请求的地址指向启动SocketTest3工具的电脑,并且端口指定为9001(这个端口要写的偏一点的,写常用的端口的话,会得到一些无关本次测试的数据,所以没有必要)。 以为 我发的请求都是api post方式的 ,所以,服务器一直给我返回的是 400状态码,且 “unsupported\_grant\_type”。到网上查了一些,大多说的是服务器的请求的头部容量设置小了,可能存在这个问题吧,但是,我知道,自己发的请求根本就没有头部信息,怎么会超量呢,后来发现问题了。 所以说Django OAuth Toolkit 还真是坑爹啊,没办法,我只能把请求改成form表单提交的形式。 下载SocketTest3工具,[请点击这里][Link 1]。 [20160119163641905]: /images/20210511/1fe792ec5e6547abbc6e103ab274a8c6.png [Link 1]: http://download.csdn.net/detail/dqchouyang/9410230
还没有评论,来说两句吧...