python3requests库⽂件上传与下载实现详解
在接⼝测试学习过程中,遇到了利⽤requests库进⾏⽂件下载和上传的问题。同样,在真正的测试过程中,我们不可避免的会遇到上传和下载的测试。
⽂件上传:
url = ztx.host+'upload/uploadFile?CSRFToken='+CSRFToken()#上传⽂件的接⼝地址
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
'Cookie':'JSESSIONID=535422F931158199018FE8D19620B9A1-n1.t2; SERVERID=cd7972e881cb9bd27adc12dbcf73adc1|'
'1566374032|1566373045; loginWay_cookie=%7B%22index%22%3A%220%22%7D'
}#上传⽂件请求的头信息
data = {
'md5_val':'ab91fd09413553e724311ec78217df55',
'id':'WU_FILE_0',
'name':'浙江省建设⼯程计价成果⽂件数据标准.doc',
'type':'application/msword',
# 'lastModifiedDate':'Mon Mar 11 16:21:05 UTC+0800 2019',
}#上传⽂件的请求参数
files = {
'file':('浙江省建设⼯程计价成果⽂件数据标准.doc',#file是请求参数,要与接⼝⽂档中的参数名称⼀致
open(r'C:\Users\Administrator\Desktop\浙江省建设⼯程计价成果⽂件数据标准.doc','rb'),#已⼆进制的形式打开⽂件
'application/msword')#上传⽂件的MIME⽂件类型,这个必须要有
}#上传的⽂件
r = ztx.session.post(url=url,headers=header,data=data,files=files,verify=False)
注意:切记header头信息中不要添加Content-Type:xxxxxxx 这个字段,添加之后在发起请求的时候有可能不到⽂件(希望⼤家避过这个坑)
下载⽂件:
下载⽂件相对稍微简单⼀点,请求类型为get请求
url = 'jypt.zhaotx/upload/download/82F2413B8C13473AAECA512AA05124EA'
r = (url=url,stream=True,verify=False)#以流的形式进⾏下载⽂件
if r.status_code ==200:#请求响应结果如果为200,将下载内容写⼊指定⽂件中
session下载with open(r'C:\Users\Administrator\Desktop\11.doc','wb') as f:
for chunk in r.iter_content(chunk_size=1024):#循环写⼊,chunk_size是⽂件⼤⼩
f.write(chunk)
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。