使用Python 3.4.1和Urllib3访问Imgur API
我正在努力理解Imgur的API。我找到了一些关于如何向Imgur发送授权头的好例子,但它们都是用urllib2写的,而我现在用的是Python 3.4.1,只能用urllib3。
所以我尝试了几种方法,但似乎都不太管用。
在这个帖子中,我尝试使用basic_auth头:
http = urllib3.PoolManager()
header = urllib3.make_headers(basic_auth="Client-ID" + CLIENT_ID)
r = http.request('GET', 'https://api.imgur.com/3/gallery/r/pics', headers=header)
结果我得到了一个403错误。
在这个帖子中,我尝试了另一种方法:
http = urllib3.PoolManager()
header= {"Content-Type": "text", "Authorization": "Client-ID" + CLIENT_ID}
r = http.request('GET', 'https://api.imgur.com/3/gallery/r/pics', headers=header)
结果也是返回了403。
不过,我通过阅读urllib3的文档,离目标又近了一步,尝试把Authorization作为一个字段发送。
http = urllib3.PoolManager()
r = http.request('GET', 'https://api.imgur.com/3/gallery/r/pics', fields={"Authorization": "Client-ID " + CLIENT_ID})
但这次却返回了401。
所以,有人能帮我搞清楚如何用这些方法,或者其他方法,进行基本的匿名与Imgur API的交互吗?
1 个回答
2
根据imgur的API文档,你需要这样发送认证头:
Authorization: Client-ID YOUR_CLIENT_ID
在这一行:
header = urllib3.make_headers(basic_auth="Client-ID" + CLIENT_ID)
你发送的是: Authorization: Client-IDYOUR_CLIENT_ID
这里面需要有一个空格。