微信开发 AccessToken 定时刷新(利用线程完成 JAVA)

直接上代码


// 測試號

    //自己的id和密码此次是测试号

public static String AppId = "***";
public static String secret = "****";


// 第一次直給实例
public static AccessToken accessToken = new HttpServiceCore().getAccessToken(AppId, secret);//下面有代码
// 默認等一次实例,线程自动赋值
public static AccessToken accessToken2 = accessToken;
// 启动表示类防止重复启动
public static boolean start = false;


@Override
public void run() {
while (true) {
try {
if (null != accessToken2) {
// 当前 休眠7000秒,accessToken 从赋值
Thread.sleep((accessToken.getExpires_in() - 200) * 1000);
// Thread.sleep(3000);
accessToken2 = new HttpServiceCore().getAccessToken(AppId, secret);
// System.out.println(accessToken2.getAccess_token());


}
} catch (Exception e) {
e.printStackTrace();
}
}



}





------------------------------------------------------------------------------------------------------------------------------------------------------------------new HttpServiceCore().getAccessToken()//直接上代码





/**
* 获取accessToken
* 
* @return
* @throws IOException
*/
public AccessToken getAccessToken(String AppId, String secret) {
AccessToken at = new AccessToken();
try {


String grant_type = "client_credential";// refresh_token
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=" + grant_type + "&appid=" + AppId
+ "&secret=" + secret;
URL url_1 = new URL(url);
HttpURLConnection huc = (HttpURLConnection) url_1.openConnection();
huc.setRequestMethod("GET");
huc.setDoOutput(true);
huc.setDoInput(true);
huc.connect();


InputStream inputStream = huc.getInputStream();
int size = inputStream.available();
byte[] bs = new byte[size];
inputStream.read(bs);
String message = new String(bs, "UTF-8");


// 获取access_token
JSONObject jsonObject = JSONObject.fromObject(message);
String accessToken = jsonObject.getString("access_token");
int expires_in = Integer.parseInt(jsonObject.getString("expires_in"));


at.setAccess_token(accessToken);
at.setExpires_in(expires_in);


} catch (Exception e) {


}
return at;
}

 

你可能感兴趣的:(微信公众号开发,JAVA)