java实现微信获取/下载临时素材
2016-12-20 15:47
2983 查看
摘要: 由于微信二次开发需要保持用户发送的消息到自己公司的服务器,如视频、语音等媒体文件,需要调用微信获取临时素材接口才能获取到媒体文件
//定义两个成员变量常量 //获取临时素材(视频不能使用https协议) public static final String GET_TMP_MATERIAL = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s"; //获取临时素材(视频) public static final String GET_TMP_MATERIAL_VIDEO = "http://api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s"; //获取微信服务器中生成的媒体文件 //由于视频使用的是http协议,而图片、语音使用http协议,故此处需要传递media_id和type protected static File fetchTmpFile(String media_id, String type){ try { String token = AccessTokenApi.getAccessToken().getAccessToken(); String url = null; //视频是http协议 if("video".equalsIgnoreCase(type)){ url = String.format(GET_TMP_MATERIAL_VIDEO, token, media_id); }else{ url = String.format(GET_TMP_MATERIAL, token, media_id);; } URL u = new URL(url); HttpURLConnection conn = (HttpURLConnection) u.openConnection(); conn.setRequestMethod("POST"); conn.connect(); BufferedInputStream bis = new BufferedInputStream(conn.getInputStream()); String content_disposition = conn.getHeaderField("content-disposition"); //微信服务器生成的文件名称 String file_name =""; String[] content_arr = content_disposition.split(";"); if(content_arr.length == 2){ String tmp = content_arr[1]; int index = tmp.indexOf("\""); file_name =tmp.substring(index+1, tmp.length()-1); } //生成不同文件名称 File file = new File(file_name); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); byte[] buf = new byte[2048]; int length = bis.read(buf); while(length != -1){ bos.write(buf, 0, length); length = bis.read(buf); } bos.close(); bis.close(); return file; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }
相关文章推荐
- php 微信开发之新增上传/获取下载临时素材
- Java学习笔记(二十四):微信获取临时素材,然后存到oss
- Java企业微信开发_08_素材管理之下载微信临时素材到本地服务器
- java实现上传网络图片到微信临时素材
- java实现获取微信公众服务号消息
- 原创:微信小程序java实现AES解密并获取unionId
- 根据媒体ID获取微信临时素材
- java实现微信新增永久视频素材
- Java企业微信开发_06_素材管理之上传本地临时素材文件至微信服务器
- 从零实现 Spring Boot 2.0 整合 weixin-java-mp(weixin-java-tools) 获取 openId,用于微信授权
- java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表
- java 实现微信服务器下载图片到自己服务器
- 在linux环境下,java实现ftp下载获取文件对象数组总是失败的原因
- 微信 java 实现js-sdk 图片上传下载完整流程
- 微信小程序java实现AES解密并获取unionId
- 微信上传下载临时素材
- java实现微信授权获取用户openid及授权用户相关信息
- 原创:微信小程序java实现AES解密并获取unionId