java微信开发之上传下载多媒体文件_

上传人:pu****.1 文档编号:473285560 上传时间:2022-07-29 格式:DOCX 页数:21 大小:17.63KB
返回 下载 相关 举报
java微信开发之上传下载多媒体文件__第1页
第1页 / 共21页
java微信开发之上传下载多媒体文件__第2页
第2页 / 共21页
java微信开发之上传下载多媒体文件__第3页
第3页 / 共21页
java微信开发之上传下载多媒体文件__第4页
第4页 / 共21页
java微信开发之上传下载多媒体文件__第5页
第5页 / 共21页
点击查看更多>>
资源描述

《java微信开发之上传下载多媒体文件_》由会员分享,可在线阅读,更多相关《java微信开发之上传下载多媒体文件_(21页珍藏版)》请在金锄头文库上搜索。

1、java微信开发之上传下载多媒体文件_ 这篇文章主要为大家具体介绍了java微信开发之简洁实现上传下载多媒体文件的相关资料,感爱好的小伙伴们可以参考一下 回复图片、音频、视频消息都是需要media_id的,这个是需要将多媒体文件上传到微信服务器才有的。 上传下载多媒体文件的方法还是写到WeixinUtil.java中。 代码如下: import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream;

2、import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import .HttpURLConnection; import .MalformedURLException; import .URL; import java.security.Key

3、ManagementException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.SecureRandom; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import .ssl.HttpsURLConnection; import .ssl.SSLContex

4、t; import .ssl.SSLSocketFactory; import .ssl.TrustManager; import net.sf.json.JSONObject; import mons.lang.StringUtils; import org.apache.log4j.Logger; import pany.project.model.menu.AccessToken; import pany.project.model.menu.Menu; public class WeixinUtil private static Logger log = Logger.getLogge

5、r(WeixinUtil.class); public final static String APPID = wxb927d4280e6db674; public final static String APP_SECRET = 21441e9f3226eee81e14380a768b6d1e; / 猎取access_token的接口地址(GET) 限200(次/天) public final static String access_token_url = https:/ / 创建菜单 public final static String create_menu_url = https:/

6、 / 存放:1.token,2:猎取token的时间,3.过期时间 public final static MapString,Object accessTokenMap = new HashMapString,Object(); /* * 发起https恳求并猎取结果 * * param requestUrl 恳求地址 * param requestMethod 恳求方式(GET、POST) * param outputStr 提交的数据 * return JSONObject(通过JSONObject.get(key)的方式猎取json对象的属性值) */ public static JS

7、ONObject handleRequest(String requestUrl,String requestMethod,String outputStr) JSONObject jsonObject = null; try URL url = new URL(requestUrl); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); SSLContext ctx = SSLContext.getInstance(SSL, SunJSSE); TrustManager tm = new MyX509Tru

8、stManager(); ctx.init(null, tm, new SecureRandom(); SSLSocketFactory sf = ctx.getSocketFactory(); conn.setSSLSocketFactory(sf); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestMethod(requestMethod); conn.setUseCaches(false); if (GET.equalsIgnoreCase(requestMethod) conn.connect(); if (S

9、tringUtils.isNotEmpty(outputStr) OutputStream out = conn.getOutputStream(); out.write(outputStr.getBytes(utf-8); out.close(); InputStream in = conn.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in,utf-8); StringBuffer buffer = new StringBuffer(); String line = null;

10、while (line = br.readLine() != null) buffer.append(line); in.close(); conn.disconnect(); jsonObject = JSONObject.fromObject(buffer.toString(); catch (MalformedURLException e) e.printStackTrace(); log.error(URL错误!); catch (IOException e) e.printStackTrace(); catch (NoSuchAlgorithmException e) e.print

11、StackTrace(); catch (NoSuchProviderException e) e.printStackTrace(); catch (KeyManagementException e) e.printStackTrace(); return jsonObject; /* * 猎取access_token * * author qincd * date Nov 6, 2021 9:56:43 AM */ public static AccessToken getAccessToken(String appid,String appSecret) AccessToken at =

12、 new AccessToken(); / 每次猎取access_token时,先从accessTokenMap猎取,假如过期了就重新从微信猎取 / 没有过期挺直返回 / 从微信猎取的token的有效期为2个小时 if (!accessTokenMap.isEmpty() Date getTokenTime = (Date) accessTokenMap.get(getTokenTime); Calendar c = Calendar.getInstance(); c.setTime(getTokenTime); c.add(Calendar.HOUR_OF_DAY, 2); getToken

13、Time = c.getTime(); if (getTokenTime.after(new Date() log.info(缓存中发觉token未过期,挺直从缓存中猎取access_token); / token未过期,挺直从缓存猎取返回 String token = (String) accessTokenMap.get(token); Integer expire = (Integer) accessTokenMap.get(expire); at.setToken(token); at.setExpiresIn(expire); return at; String requestUrl = access_token_url.replace(APPID, appid).replace(APPSECRET, appSecret); JSONObject object = handleRequest(requestUrl, GET, null); String access_token = object.getString(access_toke

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号