新浪OAuth网络登录,请求access_token时遇到21323的错误

按照新浪给出的文档写了,但是遇到错误,总是获取不到token值,也是post方式提交的。

查阅百度资料,发现有网友给出了解决办法,是因为

文档中有这么一句提示:

HTTP请求方式:POST

这句话太简单了,你们想 要人家POST什么?让人认为所有的参数都要作为POST发送过去。可事实偏偏不是这样的, OAuth的服务端只要看到本次提交的行为是POST就行, 至于POST集合里面有没有数据,有些什么数据,它才不会管,所以,无论我们在POST里面添加了什么键|值、无论怎么切换顺序,都是错误的,因为它就没 有去读取。

解决办法只有本着死马当活马医的态度: 乱搞!

最终还是让我发现了----需要使用GET和POST的混合方式来提交

提交的地址应该是:

"https://api.weibo.com/oauth2/access_token?client_id={0}&client_secret={1}&grant_type=authorization_code&code={2}&redirect_uri={3}"

 

请求方式:POST

POST中的数据:空!

 0,1,2,3 对应你自己的参数值

就是这样,终于正确获得token值,服务器只管你的method是POST就行了,你的实际参数都是在GET里面的。

顺便提一下: 如果采用basic方式在http头中添加key和secret, 最后依然是大同小异的错误,只不过是提示变成了找不到你的redirect_uri参数。

好了,解决思路说完了。

原文地址:https://www.cnblogs.com/wangzhilei/p/6690700.html