我正在使用python尝试从一个API get
镜像,然后post
到另一个API。
到目前为止,我有以下代码:
def create_item(token, user_id):
url = '<api_url_to_post_to>'
headers = {"Authorization": "Token {0}".format(token)}
image_url = '<some_random_image_url>'
image_obj = requests.get(image_url)
data = {
"image": image_obj.content
}
r = requests.post(url, headers=headers, files=data)
response = r.json()
print(response)
return response
问题在于,当我尝试将其post
切换到第二个API时,出现“文件扩展名”的错误。”错误。这显然是自定义错误消息,但它表示我file
正在使用的post
出了问题。
对我可能做错的任何建议吗?
答案 0 :(得分:4)
尝试指定文件类型,仅image_obj.content
是原始二进制映像:
r = requests.post(
url,
headers=headers,
files={'image': ('my_image.jpg', image_obj.content, 'image/jpg')})
这应将正确的标题添加到图像的多部分边界。
如果您不确定内容类型,实际上可以从上一个响应的标题中获取:image_obj.headers['Content-Type']
应该是“ image / jpg”,但对于其他图像,可能是“ image / png”。
答案 1 :(得分:0)
它需要文件扩展名,我可能会猜测image
应该是image.<SOME_FORMAT>
。