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判断两个对象相等的原理
Dec 12 Python
Django 跨域请求处理的示例代码
May 02 Python
Python机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
python实现字符串和字典的转换
Sep 29 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
Python爬虫:将headers请求头字符串转为字典的方法
Aug 21 Python
Python 切分数组实例解析
Nov 07 Python
Python面向对象编程基础实例分析
Jan 17 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 Python
Python Unittest原理及基本使用方法
Nov 06 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
2014/09/28 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
php打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
如何在JavaScript中正确处理变量
2020/12/25 Javascript
对于Python中RawString的理解介绍
2016/07/07 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
详解python读取image
2019/04/03 Python
python用requests实现http请求代码实例
2019/10/31 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
利用python进行数据加载
2021/06/20 Python
PHP中多字节字符串操作实例详解
2021/08/23 PHP