现有需求需要用python脚本提交图片文件和一个字段数据到某接口。以模拟form表单方式。
method: POST
Content-Type: multipart/form-data
参数:
username=xxx
picture=filename
脚本:
from collections import OrderedDict
import requests
# 构建有序字典
filename = './cat.png'
pFlie = ''
params = OrderedDict([("username", (None, 'xxx')),
("picture", open(filename, 'rb'))
])
res = requests.post('localhost:8080', files=params)
print(res.content.decode('utf-8'))
requests.post方法如果指定data,一般用于json格式数据的请求。
但如果指定files字段,并且传入字典或是上面使用的有序字典,就自动设置为multipart/form-data请求。
普通字段必须写成("username", (None, 'xxx'))
,而文件需要打开,上面没正确关闭文件。