python - 通过python上传文件到imgur

标签 python multipartform-data python-requests imgur

我在使用 python 请求模块和 Imgur API 将图像上传到 Imgur 时遇到问题。

我的代码如下:

import base64
import json
import requests

from base64 import b64encode

client_id = 'my-client-id'

headers = {"Authorization": "Client-ID my-client-id"}

api_key = 'my-api-key'

url = "http://api.imgur.com/3/upload.json"

j1 = requests.post(
    url, 
    headers = headers,
    data = {
        'key': api_key, 
        'image': b64encode(open('1.jpg', 'rb').read()),
        'type': 'base64',
        'name': '1.jpg',
        'title': 'Picture no. 1'
    }
)

我通常会收到 400 响应错误。我不确定我的 client_id 是否错误,或者我的请求是否错误(我对 url 请求的经验很少),或者我是否错误地使用了 Imgur API。

我还想在提交图片后获取图片的 url。我不确定 API 是否有一个命令,或者 python.requests 模块是否有一个技巧可以让我获取我刚刚发布的数据(POST)。

这里回答了一个非常相似的问题,代码确实有效!:Trouble sending a file to Imgur

然而,当我使用我的 client_id,而不是代码中使用的应用程序 ID 时,它返回了 400 错误,当我更改时也是如此

来自: 网址 =“http://api.imgur.com/2/upload.json” 到: url = "http://api.imgur.com/3/upload.json "

最佳答案

这是一个 v3 请求,但您没有使用强制性 SSL。尝试设置

url = "https://api.imgur.com/3/upload.json"
#          ^

关于python - 通过python上传文件到imgur,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16244183/

相关文章:

python - key 错误 : False in pandas dataframe

python - 在引用另一个模型时使用 Django 的注释函数?

javascript - 如何从 Node.js 中的 base64 字符串发送表单数据中的文件?

python - 在 C 或 Python 中使用 popen 绕过子进程输出的缓冲

rest - 无法在 JAX-RS Jersey Web 服务中处理来自 ajax 的多部分/表单数据

Java Wildfly POST 方法 multipart/form-data : "Unable to get boundary..."

python - 如何在不使用 Selenium 的情况下抓取 WHO 流感数据?

python - 请求 ssl.SSLEOFError : EOF occurred in violation of protocol (_ssl. c:777)

python - 无法抓取 YouTube 视频的隐藏式字幕

python - 如何在 python 中导入 csv 中的 3D 表?