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安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
深入浅析python with语句简介
Apr 11 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
python模糊图片过滤的方法
Dec 14 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
使用Python计算玩彩票赢钱概率
Jun 26 Python
Python转换时间的图文方法
Jul 01 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
Python基础之数据类型知识汇总
May 18 Python
Python MNIST手写体识别详解与试练
Nov 07 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
微信支付的开发流程详解
2016/09/13 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
js操作iframe父子窗体示例
2014/05/22 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
Python通过future处理并发问题
2017/10/17 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python tkinter窗口最大化的实现
2019/07/15 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
python如何对链表操作
2020/10/10 Python
Java的for语句中break, continue和return的区别
2013/12/19 面试题
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
贷款委托书范本
2014/04/08 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
django中websocket的具体使用
2022/01/22 Python
Python中re模块的元字符使用小结
2022/04/07 Python