问题描述
我正在尝试通过POST使用python和请求将多个文件和一些元数据上传到服务器API。我想使用multipart / form-data类型而不编码数据。 我已经按照教程和请求文档执行了步骤,但是遇到了几个问题:
import requests
data = {
"key1": "value1","key2": "value2"
}
files = {
"image": open('image.jpg','rb')
}
headers = {
"accept": "*/*","Authorization": "Bearer " + token
"Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryzqgQ4h5D6Zi8"
}
r = requests.post(url,files=files,data=data,headers=headers,verify=False)
print(r.status_code,r.text)
这给了我400和错误:
"Failed to read the request form. Multipart body length limit 16384 exceeded."
我读到,将Content-Type留给请求可能会有所帮助,它会弄清楚它。 没有Content-Type声明,我仍然得到400和一个文本:
file is required
现在这可能是服务器端的问题(我看不到),因为它需要multipart / form-data,但是我想请求处理的是正确的标识?
到目前为止,我很不走运,有人知道如何解决这个问题吗?
编辑:仍然不知道是什么导致问题的确切原因,但是找到了解决方法:
- 将所有数据直接添加到URL字符串
- 消除了所有标头,但没有必要的授权令牌
在我看来,请求能够完成很多繁重的工作,而太多的声明会妨碍(?)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)