我该如何使用等同于“ curl -T“ myfile”“ url”

时间:2019-07-04 14:09:04

标签: python-3.x api python-requests

我需要将本地图片上传到URL。 我的curl请求看起来像:“ curl -T'my_picture''the_url'”。

我的目的是在Python中做到这一点,我必须使用:request.put()。 我之前所做的一切都很好,但是此功能给我带来了很多麻烦。

解决方案可能真的很简单,但我迷路了。

感谢您的帮助。

def apithree(urlupload):
    url = urlupload
    picture = Image.open("test.png")
    headers = {"content-type": "multipart/form-data"}

    response = requests.put(url, headers=headers, data=picture)
    response = response.json()
    print(response)

我尝试过的其他代码

def apithree(urlupload):
    url = urlupload
    files = {'image': open('test.png', 'rb')}

    response = requests.post(url, data=files)
    response = response.json()
    print(response)

如果该命令有效,则输出应为空,但我总是收到错误消息。

如有必要,我可以添加错误消息。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果服务器接受multipart/form-data个图像,则您可能需要files= parameter来请求:

import requests

files = {'file_name': open(r'C:\data\...\image.png', 'rb')}
r = requests.post(YOUR_URL, files=files)  # or requests.put(...)
print(r.status_code, r.json())