起因

为了测试企业微信上传临时素材接口,我写了一段python脚本,使用的是requests 库,按照官方接口说明:

要构造相应表单的栏位,才能指定上传后文件的显示名称,于是我测试脚本如下:

然而并没什么用,上传后还是会以原始文件命来命名。 为什么不行?研究一下

测试和分析

1.首先按下面的方式,不指定任何其它参数,打印出request,发现请求里的name和filename。

2.扩展成 tuple 方式,指定filename,发现功改变了请求里的 filename 了,所以结论是 request库

会以 file 参数的结构来构造  name和filename 表单参数。

测试代码如下:

                    with open(imagepath, 'rb') as f:extname = os.path.splitext(imagepath)[-1]#fs = {'name1':('filename1'+extname, f)}fs = {'name1': f}response = requests.post(url, files=fs)print(response.request.body,response.request.headers)# print(ret)if response.status_code == 200:retDict = response.json()print(retDict)

因为以前一直也没仔细研究request库,只是拿来用过,趁碰到这个问题,打开它的定义文件里看了一下代码说明。

原来,所用的 post , get 等等方法,其着都是由 request  方法派生的,实际最终都是调用的request方法。

其它着法其实也只是把参数带给 request方法,request方法的说明非常清晰。如下,关于files参数有几种结构形式。其它参数的说明看完也自然清楚了。

python requests 上传文件相关推荐

  1. python requests 上传文件_Python requests上传文件实现步骤

    工作中涉及到一个功能,需要上传附件到一个接口,接口参数如下: 使用http post提交附件 multipart/form-data 格式,url : http://test.com/flow/upl ...

  2. python requests 上传文件_Fastapi 上传多个文件(包含服务器端和python客户端代码)...

    Fastapi有上传多个文件的接口代码,亲测可用.缺点是:使用浏览器接口文档操作比较方便,如果客户端没有浏览器,使用python写的代码来上传文件,则调了很久都调不成功.Fastapi官方链接:Fas ...

  3. Python请求上传文件接口

    Python 请求上传文件接口 def post_multipart_request():params = {"key1": "value1", "k ...

  4. python requests上传大文件_pythonrequestspost大文件和获取进度条

    问题: python requests post 大文件和获取进度条 描述: 准备用HTTP 在局域网内 上传一些文件,文件一般都在1G左右r = requests.post('****', data ...

  5. python post 上传文件_python接口自动化7-post文件上传

    前言 文件上传在我们软件是不可少的,最多的使用是体现在我们后台,当然我们前台也会有.但是了解过怎样上传文件吗?这篇我们以禅道文档-创建文档,上传文件为例. post请求中的:Content-Type: ...

  6. python post 上传文件_Python通过POST方式上传文件及提交参数到远程服务器

    前言 在树莓派开发过程中,因为没有公网IP,为了方便访问获取信息,有时候我们需要将树莓派获取到的一些数据或文件上传到云端服务器.这是一个比较简便的方法. Python代码 需要用到requests库, ...

  7. python fabric上传文件夹_通过python的fabric包完成代码上传部署(简单版)

    首先是安装fabric包pip install fabric fabric常用参数 -l : 显示定义好的任务函数名 -f : 指定fab入口文件,默认入口文件名为fabfile.py -H : 指定 ...

  8. Requests上传文件

    接口文档如下: 需要通过接口上传一个文件. postman方式 在postman里,通过设置form-data,key为file,且下拉选择file类型,点击value上传文件. 然后发送请求即可. ...

  9. python自动化上传文件_python接口自动化测试二十三:文件上传

    # 以禅道为例: 一.创建一个类,类里面写一个登录方法: import requests class LoginZentao(): def __init__(self, s): # 初始化 self. ...

  10. python flask上传文件_Python之利用Flask上传文件、Flask_RESTful

    Flask上传文件 回顾知识点form表单中,一旦涉及到上传文件就要就必须要有enctype属性,而且必须等于multipart/form-data.而且提交方式为'post',method = 'p ...

最新文章

  1. Django链接数据库步骤
  2. 韩信竟是数学大师?中国古代数学启发计算机加密算法
  3. snipaste滚动截图方法_电脑必备!这个截图神器比QQ截图更好用
  4. Salesforce视图与控制器之间的交互
  5. 时光不老,我们不散!
  6. 项目: 实现弹跳小球动画
  7. 全球及中国微电网市场规模容量及建设运营模式分析报告2021年版
  8. Linux下防火墙开放端口
  9. 为什么读博士的人越来越多?博士毕业难度不是越来越大吗?
  10. 基于Xml 的IOC 容器-获得配置路径
  11. 非对称加解密交互故事
  12. mapreduce实现矩阵相乘
  13. 各种泵的图形符号_泵的图形符号
  14. 蜡笔小新-java-map
  15. ggplot画 ump 和tsne 从seurat中使用addmodule得到的umap 使用ggplot画图
  16. 蓝牙电话/耳机和蓝牙音乐profile
  17. 将Unity地形以Wavefront Obj格式导出
  18. python -简易密码生成器
  19. 五险一金有哪些「知识普及」
  20. 合成大西瓜小游戏微信小程序源码

热门文章

  1. webservice视频教程-基于SOA 思想下的WebService实战
  2. 电影院售票系统mysql表格_电影院票务管理系统数据库设计(1)
  3. CAD转GIS工具软件下载
  4. 简单利用字典破解zip文件口令
  5. 分享DXperience免费汉化下载
  6. mysql各版本jar包下载
  7. linux pwm 调屏_linux驱动---bl_pwm驱动与backlight class实现背光调整
  8. 【Java web 项目】医院药品管理系统
  9. 非参数统计的Python实现——符号检验
  10. OFDM中的DC subcarrier