【问题标题】:Accessing Imgur API with Python 3.4.1 and Urllib3使用 Python 3.4.1 和 Urllib3 访问 Imgur API
【发布时间】:2014-05-30 00:45:04
【问题描述】:

我正试图围绕 Imgur API。我找到了一些如何将授权标头发送到 Imgur 的好例子,但是它们都使用 urllib2,而我显然使用 pyhton 3.4.1 只能使用 urllib3。

所以我尝试了几件事,但似乎都没有工作。

来自 this post 我尝试使用 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 错误。

来自this post我尝试了这个方法:

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 的基本匿名交互?

【问题讨论】:

    标签: python python-3.x imgur urllib3


    【解决方案1】:

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

    Authorization: Client-ID YOUR_CLIENT_ID
    

    在这一行:

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

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

    你需要一个空格。

    【讨论】:

    • 不幸的是,这给了我完全相同的 403 响应。但是,如果我使用第二个示例,我会得到 200 个空格!我很傻,因为它只是一个导致我问题的空间!
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2014-07-02
    • 2017-07-01
    • 1970-01-01
    • 2018-02-02
    相关资源
    最近更新 更多