思路:创建一个线程类,定义一个静态变量.在项目启动的时候运行,死循环去请求微信获取token的接口,拿到token赋值给静态变量,再休眠一个小时五十分钟,下次又取到token又赋值给静态变量,这样token永远都是有效的了.
public class AccessTokenUtil extends Thread{
public static final String accUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET";
public static String accessToken ;
@Override
public void run() {
try {
while(true){
accessToken = getAccessToken();
logger.info("Token = " + accessToken);
Thread.sleep(7000*1000);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String getAccessToken (){
String result = HttpUtil.getResult(accUrl.replace("ID","自己的").replace("SECRET", "自己的"));
JSONObject jsonObj = JSONObject.fromObject(result);
return jsonObj.get("access_token").toString();
}
}