我想在python中使用urllib2
获取身份验证令牌。
我的程序是(我更改了凭证):
import urllib2
import urllib
USER_NAME = 'me'
USER_PASSWORD = 'mypass'
url = "http://myurl.org/oauth/token"
query_args = { "grant_type":"password",
"username":USER_NAME,
"password":USER_PASSWORD,
"client_secret":'123',
'client_id':'456'}
encoded_args = urllib.urlencode(query_args)
print urllib2.urlopen(url, data=encoded_args).read()
运行结果为403 Error: Forbidden
。
但是,我可以使用终端中的curl
获取身份验证令牌:
curl -X POST "url" -d "credentials"
我在python代码中使用了“url”和“凭据”(以获取我打印出来的“凭据”字符串encoded_args
)。
如何使用urllib2
获取身份验证令牌?
答案 0 :(得分:1)
首先,您不应在同一应用程序中混用urllib
和urllib2
。 urllib2
是urllib
的继承者,并会做同样的事情。
这里真正的答案是使用支持OAuth的库来python-oauth2来为你做繁重的工作。或者更好的是,从urllib2
切换到稍微更高级别的包requests,并使用他们的brilliant oauth plugins中的一个来获得一个解决问题的解决方案!