python3 requests库文件上传与下载实现详解


Posted in Python onAugust 22, 2019

在接口测试学习过程中,遇到了利用requests库进行文件下载和上传的问题。同样,在真正的测试过程中,我们不可避免的会遇到上传和下载的测试。

文件上传:

url = ztx.host+'upload/uploadFile?CSRFToken='+self.getCSRFToken()#上传文件的接口地址
    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 = 'https://jypt.zhaotx.cn/upload/download/82F2413B8C13473AAECA512AA05124EA'
    r = ztx.session.get(url=url,stream=True,verify=False)#以流的形式进行下载文件
    if r.status_code ==200:#请求响应结果如果为200,将下载内容写入指定文件中
      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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
详解Python爬虫的基本写法
Jan 08 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
python3实现高效的端口扫描
Aug 31 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
django正续或者倒序查库实例
May 19 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
python爬虫scrapy图书分类实例讲解
Nov 23 Python
python 写一个文件分发小程序
Dec 05 Python
用python制作个音乐下载器
Jan 30 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 #Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 #Python
浅谈Python 递归算法指归
Aug 22 #Python
python求加权平均值的实例(附纯python写法)
Aug 22 #Python
python求平均数、方差、中位数的例子
Aug 22 #Python
python2和python3实现在图片上加汉字的方法
Aug 22 #Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 #Python
You might like
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
分享php多功能图片处理类
2016/05/15 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[16:21]教你分分钟做大人:圣堂刺客
2014/12/03 DOTA
Python 实现链表实例代码
2017/04/07 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
python的依赖管理的实现
2019/05/14 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
Python爬虫开发与项目实战
2020/12/16 Python
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
给民警的表扬信
2014/01/08 职场文书
教师党员承诺书
2014/03/25 职场文书
关于学习的演讲稿
2014/05/10 职场文书
高中家长意见怎么写
2015/06/03 职场文书
介绍信应该怎么开?
2019/04/03 职场文书