错误原因: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的更多相关文章

  1. flexpaper上传带中文名字的文档,在页面显示若出现404错误时,请在server.xml文件中进行编码utf-8

    flexpaper上传带中文名字的文档,在页面显示若出现404错误时,请在server.xml文件中进行编码utf-8

  2. HttpClient 4.3.* 上传带中文文件名文件文件名乱码问题的解决

    又是折腾了一天才解决的问题,网上关于这个问题的资料不多,希望写出来能帮到有需要的人. 之前无论怎么设置charset都不起作用, 后来看了这篇文章 才发现MultipartEntityBuilder有 ...

  3. 基于Picture Library创建的图片文档库中的上传多个文件功能(upload multiple files)报错怎么解决?

    复现过程 首先,我创建了一个基于Picture Library的图片文档库,名字是 Pic Lib 创建完毕后,我点击它的Upload 下拉菜单,点击Upload Picture按钮 在弹出的对话框中 ...

  4. atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

    atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7 1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传 ...

  5. Plupload上传插件中文帮助文档

    Plupload上传插件中文帮助文档 配置参数 实例化一个plupload对象时,也就是 new plupload.Uploader(),需要传入一个对象作为配置参数.后面内容中出现的plupload ...

  6. drupal7 上传文件中文乱码

    drupal7自带有file模块,可以上传文件. 但是存在问题:如果上传的文件名称是中文,存储在文件下面的文件名称是乱码的,解决办法如下:参考出处 includes/file.inc中,修改两处代码, ...

  7. html5 文件上传 带进度条

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. 微信上传图文消息invalid media_id hint,thumb_media_id怎么获取

    微信上传图文消息thumb_media_id, thumb_media_id怎么获取, 微信群发图文消息invalid media_id hint, 微信群发图文消息40007, 40007,inva ...

  9. 一般处理程序、Ajax多图片上传带进度条

    <!DOCTYPE html><html><head>    <meta charset="utf-8" />    <tit ...

随机推荐

  1. 二、Spring Boot系列:Spring Initializer快速创建Spring Boot项目

    1.点击创建新工程 2.选择Spring Initializer和jdk1.8 注意:项目名称要小写字母 3.现在只需要一个创建一个web,选择一个就好 4.没有用的文件,可以删除 5.pom.xml ...

  2. canvas 操作像素 反相

    代码实例: <!DOCTYPE html> <html> <head> <style> canvas{ background:#eee; } </ ...

  3. canvas 点击图片播放视频

    canvas.js window.onload=function() { var canvas = document.getElementById('canvas'); var ctx= canvas ...

  4. hdu 1506:Largest Rectangle in a Histogram 【单调栈】

    题目链接 对栈的一种灵活运用吧算是,希望我的注释写的足够清晰.. #include<bits/stdc++.h> using namespace std; typedef long lon ...

  5. python每日练习10题

    161.求1000以内的所有的素数以及闰年的数之和 第一步:求1000以内的素数,素数:只能被1和本身整除的数叫素数 import math def is_prime(num): if num ==1 ...

  6. 命令查看当前运行APP的包名和Activity

    先用usb链接手机 启动要查看的程序,命令查看当前运行的包名和Activity更清晰. 使用adb shell dumpsys window | findstr mCurrentFocus  命令查看 ...

  7. Python3 使用HTMLTestRunner.py 报错ImportError: No module named 'StringIO'处理方法

    HTMLTestRunner.py文件是基于Python2的语法,python3使用需要修改语法: 1.>>> 94行 import io # import StringIO 2.& ...

  8. MySQL执行计划之EXPLAIN基本解释说明

    一.EXPLAIN使用潜规则 explain + sql语句 例如: EXPLAIN SELECT * FROM `t_user`; 二. 表头字段详解 (1) id-----> 表的读取顺序 ...

  9. 抽象abstract

    1):一个类如果有抽象方法,这个类一定是抽象类.抽象类不一定有抽象方法.抽象方法是以分号结束.不是以{}. 抽象方法也不提供实现代码. 2):任何拓展抽象类的类都必须实现超类的所有抽象方法.除非子类也 ...

  10. Yii2 $app总结

    //验证登陆 Yii::$app->user->isGuest; //当前user的id Yii::$app->user->id; //当前controller的名称 Yii: ...