python3 requests库文件上传与下载

Posted zhang-engineer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 requests库文件上传与下载相关的知识,希望对你有一定的参考价值。

在接口测试学习过程中,遇到了利用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(rC:\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(rC:\Users\Administrator\Desktop\11.doc,wb) as f:
                for chunk in r.iter_content(chunk_size=1024):#循环写入,chunk_size是文件大小
                    f.write(chunk)

 

以上是关于python3 requests库文件上传与下载的主要内容,如果未能解决你的问题,请参考以下文章

Python3网络爬虫实战-25requests:高级用法

文件的上传与下载

Python3 用 requests 2.x 下载大文件

文件上传与下载

Python3上传中文文件名的问题

requests实现文件下载, 期间显示文件信息&下载进度_python3