1

我正试图围绕 Imgur API。我找到了一些如何将授权标头发送到 Imgur 的好例子,但是它们都使用 urllib2,而我显然使用 pyhton 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 文档更接近了一步,并尝试将授权作为字段发送。

http = urllib3.PoolManager()
r = http.request('GET', 'https://api.imgur.com/3/gallery/r/pics', fields={"Authorization": "Client-ID " + CLIENT_ID})

但是,这会返回 401。

那么有人可以帮助我使用这些或其他方法找出与 Imgur API 的基本匿名交互吗?

4

1 回答 1

2

根据 imgur 的 API 文档,您必须这样发送 auth 标头:

Authorization: Client-ID YOUR_CLIENT_ID

在这一行:

header = urllib3.make_headers(basic_auth="Client-ID" + CLIENT_ID)

您将其发送为:授权:Client-IDYOUR_CLIENT_ID

你需要一个空间。

于 2014-05-29T16:45:04.780 回答