经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
python3 requests库文件上传与下载实现详解
来源:jb51  时间:2019/8/23 8:31:21  对本文有异议

在接口测试学习过程中,遇到了利用requests库进行文件下载和上传的问题。同样,在真正的测试过程中,我们不可避免的会遇到上传和下载的测试。

文件上传:

  1. url = ztx.host+'upload/uploadFile?CSRFToken='+self.getCSRFToken()#上传文件的接口地址
  2. header = {
  3. 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
  4. 'Cookie':'JSESSIONID=535422F931158199018FE8D19620B9A1-n1.t2; SERVERID=cd7972e881cb9bd27adc12dbcf73adc1|'
  5. '1566374032|1566373045; loginWay_cookie=%7B%22index%22%3A%220%22%7D'
  6. }#上传文件请求的头信息
  7. data = {
  8. 'md5_val':'ab91fd09413553e724311ec78217df55',
  9. 'id':'WU_FILE_0',
  10. 'name':'浙江省建设工程计价成果文件数据标准.doc',
  11. 'type':'application/msword',
  12. # 'lastModifiedDate':'Mon Mar 11 16:21:05 UTC+0800 2019',
  13. }#上传文件的请求参数
  14. files = {
  15. 'file':('浙江省建设工程计价成果文件数据标准.doc',#file是请求参数,要与接口文档中的参数名称一致
  16. open(r'C:\Users\Administrator\Desktop\浙江省建设工程计价成果文件数据标准.doc','rb'),#已二进制的形式打开文件
  17. 'application/msword')#上传文件的MIME文件类型,这个必须要有
  18. }#上传的文件
  19. r = ztx.session.post(url=url,headers=header,data=data,files=files,verify=False)

注意:切记header头信息中不要添加Content-Type:xxxxxxx 这个字段,添加之后在发起请求的时候有可能找不到文件(希望大家避过这个坑)

下载文件:

下载文件相对稍微简单一点,请求类型为get请求

  1. url = 'https://jypt.zhaotx.cn/upload/download/82F2413B8C13473AAECA512AA05124EA'
  2. r = ztx.session.get(url=url,stream=True,verify=False)#以流的形式进行下载文件
  3. if r.status_code ==200:#请求响应结果如果为200,将下载内容写入指定文件中
  4. with open(r'C:\Users\Administrator\Desktop\11.doc','wb') as f:
  5. for chunk in r.iter_content(chunk_size=1024):#循环写入,chunk_size是文件大小
  6. f.write(chunk)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号