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(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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构