python请求发送错误的多部分负载
我正在尝试使用requests包发送一个由多个部分组成的POST请求 代码如下:python请求发送错误的多部分负载,python,http,flask,python-requests,Python,Http,Flask,Python Requests,我正在尝试使用requests包发送一个由多个部分组成的POST请求 代码如下: with open("small-car.png", "rb") as image_file: encoded_image = "data:image/png;base64,%s" % base64.b64encode(image_file.read()) files = {'img': encoded_image} r = requests.post(url, files=files) 在服务器端,我
with open("small-car.png", "rb") as image_file:
encoded_image = "data:image/png;base64,%s" % base64.b64encode(image_file.read())
files = {'img': encoded_image}
r = requests.post(url, files=files)
在服务器端,我依靠下面的flask代码对其进行解码:
data = request.form.to_dict()
但是,数据总是{}。带有wireshark的峰值显示以下内容:
data = {'file': files}
response = requests.put(url=url, data=data)
data = {'img': ('', encoded_image)}
requests.post(url, files=data)
这似乎是错误的。我认为正确的标题不应该包含filename=xxx部分
这里有没有办法调整请求以执行正确的操作?我认为您可以执行以下操作:
data = {'file': files}
response = requests.put(url=url, data=data)
data = {'img': ('', encoded_image)}
requests.post(url, files=data)
此外,您可以在flask代码导入ipdb中添加跟踪,而不是使用wireshark;ipdb.set_trace并检查Python中发布的内容。我非常确定您的标题是正确的。 在flash中,分别接收文件 看看这个:
如果要排除文件名部分,请执行以下操作:
data = {'file': files}
response = requests.put(url=url, data=data)
data = {'img': ('', encoded_image)}
requests.post(url, files=data)
元组的第一个元素将作为文件名,因为它是空的,所以将被排除