企业微信上传 带中文名称的 临时素材资源 报错 44001:empty media data
错误原因:urllib3的老版本bug,卸载掉 requests,urllib3,从新安装最新版的requests(此包内部依赖urllib3);
我从新安装的是 requests==2.22.0 及 urllib3==1.25.3 包
上传 临时资源的代码如下(此代码支持 上传的文件 和 用户收到显示的文件 都为中文的 情况):
def upload_temp_file(self, token, userid, file_abs_path, file_type, file_name):
"""
上传 临时素材资源
接口文档地址:https://work.weixin.qq.com/api/doc#90000/90135/90253 :param token: 企业微信的token
:param userid: 用户企业微信id
:param file_abs_path: 需要上传文件的绝对路径
:param file_type: 文件类型
:param file_name: 用户收到文件时显示的文件名
:return:bool,str
""" # 校验 file_type
support_file_type = ['image', 'voice', 'video', 'file']
if file_type not in support_file_type:
log.error(f'error file type,only support {support_file_type}')
return False, None # 文件名为中文的bug解决方法:https://blog.csdn.net/u013250071/article/details/82493892
file_upload_result = requests.post(
'https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={}&type={}'.format(token, file_type),
files={'media': (file_name, open(file_abs_path, 'rb'), '', {})}
)
企业微信发送结果为:
总结:
1.对接第三方接口,通过代码对接时出现问题,就用 postman等 工具进行对接,如果使用工具对接没有问题,极大可能是 代码问题,不是第三方平台垃圾;
2.别忘了 考虑可能 是 使用的开源包的bug,如果 百度或谷歌 关键字 (python 企业微信 上传临时素材 44001 中文 empty media data)找不到相关答案;就试着用其他关键字进行查找 如 (python requests post 中文文件);
3.实在找不到bug,就把用的包 卸载 从装最新的,毕竟可能会 之前使用的是老版本的未修复bug的包
相关连接:
https://blog.csdn.net/u013250071/article/details/82493892
企业微信上传 带中文名称的 临时素材资源 报错 44001:empty media data的更多相关文章
- flexpaper上传带中文名字的文档,在页面显示若出现404错误时,请在server.xml文件中进行编码utf-8
flexpaper上传带中文名字的文档,在页面显示若出现404错误时,请在server.xml文件中进行编码utf-8
- HttpClient 4.3.* 上传带中文文件名文件文件名乱码问题的解决
又是折腾了一天才解决的问题,网上关于这个问题的资料不多,希望写出来能帮到有需要的人. 之前无论怎么设置charset都不起作用, 后来看了这篇文章 才发现MultipartEntityBuilder有 ...
- 基于Picture Library创建的图片文档库中的上传多个文件功能(upload multiple files)报错怎么解决?
复现过程 首先,我创建了一个基于Picture Library的图片文档库,名字是 Pic Lib 创建完毕后,我点击它的Upload 下拉菜单,点击Upload Picture按钮 在弹出的对话框中 ...
- atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7 1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传 ...
- Plupload上传插件中文帮助文档
Plupload上传插件中文帮助文档 配置参数 实例化一个plupload对象时,也就是 new plupload.Uploader(),需要传入一个对象作为配置参数.后面内容中出现的plupload ...
- drupal7 上传文件中文乱码
drupal7自带有file模块,可以上传文件. 但是存在问题:如果上传的文件名称是中文,存储在文件下面的文件名称是乱码的,解决办法如下:参考出处 includes/file.inc中,修改两处代码, ...
- html5 文件上传 带进度条
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 微信上传图文消息invalid media_id hint,thumb_media_id怎么获取
微信上传图文消息thumb_media_id, thumb_media_id怎么获取, 微信群发图文消息invalid media_id hint, 微信群发图文消息40007, 40007,inva ...
- 一般处理程序、Ajax多图片上传带进度条
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <tit ...
随机推荐
- Java虚拟机——Java内存区域与内存溢出
内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域.Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器.Java虚拟机栈.本地方法栈 ...
- HDU-4676 Sum Of Gcd 莫队+欧拉函数
题意:给定一个11~nn的全排列AA,若干个询问,每次询问给出一个区间[l,r][l,r],要求得出∑l≤i<j≤r gcd(Ai,Aj)的值. 解法:这题似乎做的人不是很多,蒟蒻当然不会做只 ...
- CF555E Case of Computer Network
题面:https://www.luogu.com.cn/problem/CF555E 题意:给定一张\(n\)个点\(m\)条边的无向图. 给定\(q\)组有向点对\((s,t)\). 询问是否存在使 ...
- 嵌入式系统的性能测试(1) – lmbench篇
要评价一个系统的性能,通常有不同的指标,相应的会有不同的测试方法和测试工具.既有比较成熟的商业测试软件,也有许多优秀的开源工具来完成这个任务.本文简要介绍如何使用lmbench来完成系统综合性能测试. ...
- Vue实现active点击切换样式
1.html <div class="filter-nav" v-for="(item,index) in filterData.navTab" :key ...
- 真的,移动端尺寸自适应与dpr无关
做移动端自适应时可能很多人都对自适应和dpr之间的关系产生疑问,也有一些人会疑虑比如我的自适应方案没有加dpr会不会出问题,针对这些疑问我说一下我的见解. 1. 什么是尺寸自适应 首先标题说的自适应, ...
- golang对象
对象和组合 package main import ( "fmt" ) type father struct { name string sex int } type sun st ...
- Python lambda 多变量
>> x = list(map(lambda x, y: (x>3, y>0), (1,2,3,4,5), (0,1,2,3,4)))>>> x[(False ...
- 前端-PC端瀑布流【10张图】
.HTML 利用封装的 jquerywaterfall.js 方法 完成 <!DOCTYPE html> <html lang="en"> <head ...
- PHP curl_close函数
说明 void curl_close ( resource $ch ) 关闭一个cURL会话并且释放所有资源.cURL句柄ch 也会被释放. 参数 ch 由 curl_init() 返回的 cURL ...