我正在尝试使用Python(3.5)和Requests库来发送POST请求,这个POST将发送一个图像文件,下面是示例代码:
import requests
url = "https://api/address"
files = {'files': open('image.jpg', 'rb')}
headers = {
'content-type': "multipart/form-data",
'accept': "application/json",
'apikey': "API0KEY0"
}
response = requests.post(url, files=files, headers=headers)
print(response.text)
然而,当我运行代码时,我收到了一个400错误。我设法到达了API端点,但在响应中它指出我未能发送任何文件。
{
"_id": "0000-0000-0000-0000",
"error": "Invalid request",
"error_description": "Service requires an image file.",
"processed_time": "Tue, 07 Nov 2017 15:28:45 GMT",
"request": {
"files": null,
"options": {},
"tenantName": "name",
"texts": []
},
"status": "FAILED",
"status_code": 400,
"tenantName": "name"
}
"files"字段显示为空,这对我来说有点奇怪。POST请求在Postman上工作,我在其中使用了相同的头部参数,并使用"form-data"选项将图像添加到正文中(请参见Screenshot)。
这里有没有我遗漏的东西?有没有更好的方法用Python通过POST发送图像文件?
先谢谢你。
编辑:一个类似的问题被另一个用户问到here,但是,如果你仔细看看,我现在的代码和建议的解决方案很相似,它仍然不适合我。
1条答案
按热度按时间mwkjh3gx1#
使用此代码段