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的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
python学习入门细节知识点
Mar 29 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 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
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
php基础教程
2015/08/26 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
遗传算法python版
2018/03/19 Python
django反向解析和正向解析的方式
2018/06/05 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
Python中bisect的用法及示例详解
2020/07/20 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
银行求职信范文
2014/05/26 职场文书
python创建字典及相关管理操作
2022/04/13 Python