通过python将文件上传到imgur

时间:2013-04-26 19:52:30

标签: 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响应错误。我不确定myu client_id是否错误,或者我的请求是否错误(我对url请求的经验很少),或者我是否使用了Imgur API错误。

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

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

然而,当我使用client_id时,在代码中使用了应用程序ID,它返回了400错误,以及我更改时

自:     url =“http://api.imgur.com/2/upload.json” 至:     url =“http://api.imgur.com/3/upload.json

1 个答案:

答案 0 :(得分:5)

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

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