Python接口测试,requests库的post请求进行文件上传
前言
如果需要发送文件到服务器,比如上传图片、视频等,就需要发送二进制数据。
一般上传文件使用的都是 Content-Type: multipart/form-data; 数据类型,可以发送文件,也可以发送相关的消息体数据。
POST一个多部分编码(Multipart-Encoded)的文件
使用 requests 上传文件的基本步骤
- 构造文件数据,通过 open 函数以二进制方式打开文件
- 构造相关数据
- 发送请求,将文件数据以 files 参数传入,其他消息体数据通过 data 、json 、 headers 、 cookies 传入
url = ‘http://httpbin.org/post‘ # 上传文件接口 files = { ‘file‘: (‘test.png‘, # 文件名称 open(‘../file/test.png‘, ‘rb‘), # 文件路径 ‘image/png‘, # 文件类型 {‘Expires‘: ‘0‘} # 其他参数,非必传 ) } # => 打开上传文件并且加入文件相关参数 data = { "name": "test" } # data传入请求参数dict,files传入待上传文件参数dict r = requests.post(url, data=data, files=files) print(r.json())
注意
files字典里的 ‘file‘ 键是根据上传组件的name属性来改变的,不一定是file;
如下图上传组件,当你上传一张图片时,抓包可以发现会传两个值,一个是fileField,一个是type,所以你的文件数据dict要包含 fileField 和 type 两个key
files = { ‘fileField‘: (‘test.png‘, # 文件名称 open(‘../file/test.png‘, ‘rb‘), # 文件路径 ‘image/png‘, # 文件类型 {‘Expires‘: ‘0‘} # 其他参数,非必传 ), ‘type‘: 1 } # => 打开上传文件并且加入文件相关参数
相关推荐
chichichi0 2020-06-16
Skyline 2020-05-07
YAruli 2020-01-18
王志龙 2020-01-04
Richardxx 2020-07-26
Guanjs0 2020-11-09
wmsjlihuan 2020-09-15
shishengsoft 2020-09-15
poplpsure 2020-08-17
CyborgLin 2020-08-15
sunnyhappy0 2020-07-26
knightwatch 2020-07-19
wcqwcq 2020-07-04
YAruli 2020-06-13
JF0 2020-06-13
84423067 2020-06-12
心丨悦 2020-06-11
zkwgpp 2020-06-04
stoneechogx 2020-06-04