使用python发送文件和元数据的未编码的多部分/表单数据POST请求

问题描述

我正在尝试通过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 (将#修改为@)