unsupported_grant_type

记得我的上篇文章( 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工具,使用如下:
这里写图片描述
只需要设置 这几个点,将请求的地址指向启动SocketTest3工具的电脑,并且端口指定为9001(这个端口要写的偏一点的,写常用的端口的话,会得到一些无关本次测试的数据,所以没有必要)。

以为 我发的请求都是api post方式的 ,所以,服务器一直给我返回的是 400状态码,且 “unsupported_grant_type”。到网上查了一些,大多说的是服务器的请求的头部容量设置小了,可能存在这个问题吧,但是,我知道,自己发的请求根本就没有头部信息,怎么会超量呢,后来发现问题了。

所以说Django OAuth Toolkit 还真是坑爹啊,没办法,我只能把请求改成form表单提交的形式。
下载SocketTest3工具,请点击这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
根据提供的引用内容,显示的结果是{"error": "unsupported_grant_type", "error_description": "The authorization grant type is not supported"}。而根据引用,传递给API的参数是{"grant_type":"client_credentials", "client_id":"pGB2vIVTXn9ATexEsqMIDYO", "client_secret":"5yNZqWSIuj4PVRGdavjw1e5U3z9K6Kb"}。据引用,API的调用方式是通过POST请求发送JSON格式的数据。所以,根据提供的问题{"error":"unsupported_grant_type"},可以推断这个错误是由于使用了不支持的授权类型导致的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C++ opencv+百度OCR“error“: “unsupported_grant_type“, “error_description“: “The authorization ...](https://blog.csdn.net/dwf1354046363/article/details/119883652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [unsupported_grant_type](https://blog.csdn.net/dqchouyang/article/details/50543579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值