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结合shell查询google关键词排名的实现代码
Feb 27 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
对Python中plt的画图函数详解
Nov 07 Python
在Python中COM口的调用方法
Jul 03 Python
python for循环remove同一个list过程解析
Aug 14 Python
python将字母转化为数字实例方法
Oct 04 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
python实现密度聚类(模板代码+sklearn代码)
Apr 27 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
Python如何安装第三方模块
May 28 Python
python中元组的用法整理
Jun 15 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 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微信公众号自动发送红包API
2016/06/01 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python request设置HTTPS代理代码解析
2018/02/12 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
简单了解django索引的相关知识
2019/07/17 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
《逃家小兔》教学反思
2014/02/23 职场文书
学校食堂标语
2014/10/06 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
如何写新闻稿
2015/07/18 职场文书