亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

正在回答

2 回答

您好? 這兩個方法該寫在哪個類中呢

0 回復 有任何疑惑可以回復我~

我找到了一個方法,親測有效的:

寫一個server ?然后啟動一個線程,線程里面定義一個全局靜態變量,線程定時運行獲取access_token,然后放到內存中,取的時候通過這個靜態變量取就可以了。

jar包自己找吧

servlet----------
public?class?InitServlet?extends?HttpServlet?{????
????private?static?final?long?serialVersionUID?=?1L;????
????private?static?Logger?log?=?LoggerFactory.getLogger(WeixinUtil.class);
???
????public?void?init()?throws?ServletException?{????
????????//?獲取web.xml中配置的參數?,并初始化TokenThread.java中靜態變量appid和appsecret
????????TokenThread.appid?=?getInitParameter("appid");????
????????TokenThread.appsecret?=?getInitParameter("appsecret");
????????
????????//?web.xml未配置appid、appsecret時給出提示????
????????if?("".equals(TokenThread.appid)?||?"".equals(TokenThread.appsecret))?{????
????????????log.error("請在web.xml的InitServlet中設置appid、appsecret參數");?
????????}?else?{
????????????//?啟動定時獲取access_token的線程????
????????????new?Thread(new?TokenThread()).start();
????????}????
????}????
}
注意在web.xml配置參數appid?,appsecret


線程=-----------
public?class?TokenThread?implements?Runnable?{
	private?static?Logger?log?=?LoggerFactory.getLogger(TokenThread.class);
	//?第三方用戶唯一憑證,從InitServlet中賦值
	public?static?String?appid?=?"";
	//?第三方用戶唯一憑證密鑰,從InitServlet中賦值
	public?static?String?appsecret?=?"";
	public?static?AccessToken?accessToken?=?null;
	public?void?run(){
		/**
		?*定期獲取token
		?*/
		while?(true)?{
			try?{
				//調用公眾平臺接口獲取access_token;
				accessToken?=?WeixinUtil.getAccessToken(appid,appsecret);
				if?(null?!=?accessToken)?{
					log.info("獲取access_token成功,有效時長{}秒?token:{}",?accessToken.getExpiresIn(),?accessToken.getToken());
					//?休眠7000秒??
					Thread.sleep((accessToken.getExpiresIn()?-?200)?*?1000);
				}?else?{
					//?如果access_token為null,60秒后再獲取
					Thread.sleep(60?*?1000);
				}
			}?catch?(InterruptedException?e)?{
				try?{
					Thread.sleep(10?*?1000);
				}?catch?(InterruptedException?e1)?{
					System.out.println();
				}
				System.out.println();
			}
		}
	}
}


其他類中取值:String?token?=?TokenThread.accessToken.getToken();


2 回復 有任何疑惑可以回復我~
#1

慕粉3254756 提問者

謝謝!
2016-06-21 回復 有任何疑惑可以回復我~
#2

6的

您好 需要配置web.xml嗎
2018-07-20 回復 有任何疑惑可以回復我~
#3

6的

我的第16行getAccessToken(appid,appsecret);報這個錯,沒找出來:The method getAccessToken() in the type WeixinUtil is not applicable for the arguments (String, String)
2018-07-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

access_token存入本地

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號