微信上传素材 java_微信素材上传(JAVA)
public String uploadMaterial(String url,InputStream sbs,String filelength,String filename, String type) throws Exception {try {
DataInputStream in=new DataInputStream(sbs);url = url.replace("TYPE", type);URL urlObj = new URL(url);
// 创建Http连接HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();conn.setRequestMethod("POST");conn.setDoInput(true);conn.setDoOutput(true);conn.setUseCaches(false); // 使用post提交需要设置忽略缓存
// 消息请求头信息conn.setRequestProperty("Connection", "Keep-Alive");conn.setRequestProperty("Charset", "UTF-8");
// 设置边界String BOUNDARY = "----------" + System.currentTimeMillis();conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + BOUNDARY);
StringBuilder sb = new StringBuilder();sb.append("--"); // 必须多两道线sb.append(BOUNDARY);sb.append("\r\n");sb.append("Content-Disposition:form-data;name=\"media\";filename=\"" + filename + "\";filelength=\"" + filelength + "\"\r\n");sb.append("Content-Type:application/octet-stream\r\n\r\n");
byte[] head = sb.toString().getBytes("utf-8");
// 创建输出流OutputStream out = new DataOutputStream(conn.getOutputStream());// 获得输出流表头out.write(head);
// 文件正文部分//DataInputStream in=new DataInputStream(new ByteArrayInputStream(byts.getBytes(CharEncoding.UTF_8)));//in=new DataInputStream(meidaConn.getInputStream());int bytes = 0;byte[] bufferOut = new byte[1024 * 1024 * 10]; // 10Mwhile ((bytes = in.read(bufferOut)) != -1) {out.write(bufferOut, 0, bytes);}
/*对类型为video的素材进行特殊处理*/if ("video".equals(type)) {out.write(("--" + BOUNDARY + "\r\n").getBytes());out.write("Content-Disposition: form-data; name=\"description\";\r\n\r\n".getBytes());out.write(String.format("{\"title\":\"%s\", \"introduction\":\"%s\"}", filename, "miaoshu").getBytes());}
in.close();
// 结尾byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8");out.write(foot);out.flush();out.close();
// 获取响应StringBuffer buffer = new StringBuffer();BufferedReader reader = null;String result = null;try {reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line = null;while ((line = reader.readLine()) != null) {buffer.append(line);}if (result == null) {result = buffer.toString();}} catch (IOException e) {e.printStackTrace();} finally {reader.close();}
logger.info("uploadMaterial-result:" + result);return result;} catch (Exception e) {logger.error("uploadMaterial-ex:" + e.getMessage());throw e;}
}
public enum WxMaterialType {
WX_MATERIALTYPE_NEWS("news"), // 图文WX_MATERIALTYPE_IMAGE("image"), // ͼƬWX_MATERIALTYPE_VOICE("voice"), // 语音WX_MATERIALTYPE_VIDEO("video"),// 视频WX_MATERIALTYPE_IMG("txtimg");//图文中的图片,仅在上传图文消息内的图片获取URL时使用
private String type;
WxMaterialType(String type) {this.type = type;}
public String getType() {return type;}
public void setType(String type) {this.type = type;}}
来源:博客园
作者:chuntao
链接:https://www.cnblogs.com/chuntao/p/11433324.html
微信上传素材 java_微信素材上传(JAVA)相关推荐
- 微信上传素材 java_微信上传素材php代码
$url:微信上传媒体素材的api接口. $path_img:服务器文件的绝对路径 这里的绝对路径不是$_FILES中的临时路径,不然会报文件类型错误的异常. private function Htt ...
- 微信小程序语音识别java_微信小程序实现语音识别功能
原标题:微信小程序实现语音识别功能 使用小程序实现语音识别功能,由于语音识别可以直接使用各厂家的API接口,并且小程序为腾讯所有,因此考虑到可能的低延时,采用了腾讯提供的免费API接口,准确讲是腾讯语 ...
- 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能
小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...
- 微信刷卡 sdk java_微信支付 Java SDK
微信支付 Java SDK 对微信支付开发者文档中给出的API进行了封装. com.github.wxpay.sdk.WXPay类下提供了对应的方法: 方法名 说明microPay 刷卡支付 unif ...
- 微信支付查询订单java_微信支付java版本之查询订单
本文实例为大家分享了微信支付订单的查询接口,供大家参考,具体内容如下 1.接口简介 2.代码实现 package com.zhrd.bussinss.platform.controller.shop; ...
- php上传公众号临时素材-微信开发素材管理6
微信公众平台中, 临时素材是一种重要的素材, 它的特点是: 1. 没有数量限制,你可以上传任意数量的临时素材 2. 微信服务器保存时间短,只有3天,到期后media_id就不能使用了 这一节课程中, ...
- 上传网络图片到微信临时素材换取mediaId
一.前提说明 很多微信开发的场景需要传一个mediaId,即微信素材的媒体id,根据[微信开放平台接口文档],将已知网络图片URL上传到微信服务器,并换取媒体id,这个地方用到缓存.相关代码如下:(h ...
- 微信公众号开发-上传媒体素材到微信并存入相关信息到数据库
流程: 本地指定临时或永久素材后调用微信媒体素材上传api,将文件上传到微信服务器,微信返回含media_id的信息,本地数据库存入相关信息,以供以后素材使用. 代码 素材上传页面 <!DOCT ...
- typecho本地上传头像_微信QQ抖音透明头像制作方法,还有不会的吗?
精彩内容每天更新 她搂着被子从床上坐起来,愣了十几秒,听到厨房有动静后,这才撒着脚往房间外跑,看到一抹修长背影在厨房里忙活. 邵允琛做好早餐从厨房出来,见陆瑶穿着睡裙站那,眉头皱了皱," ...
最新文章
- 各大厂这个档次分配,大佬们有什么看法?
- 英语口语智能测试软件,口语易英语口语智能评测训系统 官方版v7.9
- Java8新特性 Optional类
- 美国总统就职演说词汇分布图
- 在VS 2010中查询和导航代码
- 单链表的顺序查找c语言,单链表(C语言)
- numpy 归一化_图卷积网络到底怎么做,这是一份极简的Numpy实现
- 构建自己的地理信息空间数据库及与客户端简单交互(内含彩蛋)
- Pyspark:电影推荐
- linux安装windows常用中文字体库
- 第二届天府大地艺术季(春)三道堰青杠树村分会场开幕
- 1214_嵌入式硬件常识积累_什么是TTL电平
- 数据可视化技术是指运用计算机,计算机图形技术在数据计算方面的应用
- 文档数据防泄密需求分析
- AR家居,随时随地在家“玩装修”!
- 史上最全图解JVM,京东小哥带你了解性能提升100%背后的秘密武器
- 多领域 ASR 英语语料库——GigaSpeech 基本介绍——附有效下载教程
- 崩坏三服务器维护,崩坏3登录过程所遇问题解决方法汇总
- 什么是PM?团队角色
- JavaScript中push() 方法
热门文章
- 打包 压缩 命令tar zip
- PO、VO、DAO、BO、POJO
- Leetcode按Tag刷题
- 一,彻底理解第一个C语言程序 Hello World
- Openssl的证书格式转换
- php判断 二维数组中 是否 存在某个一维数组
- 分享一个自定义的 console 类,让你不再纠结JS中的调试代码的兼容
- 新浪微博iOS版SDK“宝玉XP”框架学习笔记
- 【转】XP/2000无法使用“缩略图查看”、右键无“设置桌面背景”选项问题详解...
- 用JS访问iframe中的元素