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 相关文章推荐
python利用elaphe制作二维条形码实现代码
May 25 Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 Python
便捷提取python导入包的属性方法
Oct 15 Python
使用memory_profiler监测python代码运行时内存消耗方法
Dec 03 Python
利用Django提供的ModelForm增删改数据的方法
Jan 06 Python
Python之时间和日期使用小结
Feb 14 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
Python 私有属性和私有方法应用场景分析
Jun 19 Python
Pycharm调试程序技巧小结
Aug 08 Python
Python如何让字典保持有序排列
Apr 29 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怎样调用MSSQL的存储过程
2006/10/09 PHP
php array_flip() 删除数组重复元素
2009/01/14 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
Python pass 语句使用示例
2014/03/11 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
python 异常处理总结
2016/10/18 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
python3.7 的新特性详解
2019/07/25 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
创意广告词
2014/03/17 职场文书
2015年工商所工作总结
2015/05/21 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书