使用python发送文件和元数据的未编码多部分/表单数据POST请求
我正在尝试使用python和请求通过POST将几个文件和一些元数据上传到服务器API。我想使用multipart/form数据类型,而不是对数据进行编码。 我根据教程和请求文档遵循了这些步骤,但遇到了几个问题:使用python发送文件和元数据的未编码多部分/表单数据POST请求,python,post,python-requests,multipartform-data,Python,Post,Python Requests,Multipartform Data,我正在尝试使用python和请求通过POST将几个文件和一些元数据上传到服务器API。我想使用multipart/form数据类型,而不是对数据进行编码。 我根据教程和请求文档遵循了这些步骤,但遇到了几个问题: import requests data = { "key1": "value1", "key2": "value2" } files = { "image":
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和错误:
“无法读取请求表单。超出了多部分正文长度限制16384。”
我了解到,将内容类型留给请求可能会有所帮助,它会找到答案。
如果没有内容类型声明,我仍然会得到一个400和一个返回文本:
文件是必需的
现在这可能是一个服务器端问题(我没有看到),因为它需要多部分/表单数据,但我想请求处理的是正确的标识
到目前为止我运气不好,有人知道如何解决这个问题吗
编辑:仍然不知道问题的确切原因,但找到了解决方法:
- 将所有数据直接添加到URL字符串
- 除去必要的授权令牌之外,删除了所有头