課程
/后端開(kāi)發(fā)
/Java
/Java微信公眾號(hào)開(kāi)發(fā)進(jìn)階
怎么把a(bǔ)ccess_token本地存寫(xiě)
2016-06-15
源自:Java微信公眾號(hào)開(kāi)發(fā)進(jìn)階 2-3
正在回答
您好? 這兩個(gè)方法該寫(xiě)在哪個(gè)類(lèi)中呢
我找到了一個(gè)方法,親測(cè)有效的:
寫(xiě)一個(gè)server ?然后啟動(dòng)一個(gè)線程,線程里面定義一個(gè)全局靜態(tài)變量,線程定時(shí)運(yùn)行獲取access_token,然后放到內(nèi)存中,取的時(shí)候通過(guò)這個(gè)靜態(tài)變量取就可以了。
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中配置的參數(shù)?,并初始化TokenThread.java中靜態(tài)變量appid和appsecret ????????TokenThread.appid?=?getInitParameter("appid");???? ????????TokenThread.appsecret?=?getInitParameter("appsecret"); ???????? ????????//?web.xml未配置appid、appsecret時(shí)給出提示???? ????????if?("".equals(TokenThread.appid)?||?"".equals(TokenThread.appsecret))?{???? ????????????log.error("請(qǐng)?jiān)趙eb.xml的InitServlet中設(shè)置appid、appsecret參數(shù)");? ????????}?else?{ ????????????//?啟動(dòng)定時(shí)獲取access_token的線程???? ????????????new?Thread(new?TokenThread()).start(); ????????}???? ????}???? } 注意在web.xml配置參數(shù)appid?,appsecret
線程=----------- public?class?TokenThread?implements?Runnable?{ private?static?Logger?log?=?LoggerFactory.getLogger(TokenThread.class); //?第三方用戶(hù)唯一憑證,從InitServlet中賦值 public?static?String?appid?=?""; //?第三方用戶(hù)唯一憑證密鑰,從InitServlet中賦值 public?static?String?appsecret?=?""; public?static?AccessToken?accessToken?=?null; public?void?run(){ /** ?*定期獲取token ?*/ while?(true)?{ try?{ //調(diào)用公眾平臺(tái)接口獲取access_token; accessToken?=?WeixinUtil.getAccessToken(appid,appsecret); if?(null?!=?accessToken)?{ log.info("獲取access_token成功,有效時(shí)長(zhǎng){}秒?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(); } } } } 其他類(lèi)中取值:String?token?=?TokenThread.accessToken.getToken();
慕粉3254756 提問(wèn)者
6的
舉報(bào)
Java微信公眾號(hào)開(kāi)發(fā)的進(jìn)階課程,在入門(mén)的基礎(chǔ)上更加深入
1 回答access_token存入本地
2 回答Access_token存入本地
1 回答access_token怎么存入本地或內(nèi)存啊?
1 回答怎么在本地保存access_token
2 回答access_token接入的錯(cuò)誤
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-07-18
您好? 這兩個(gè)方法該寫(xiě)在哪個(gè)類(lèi)中呢
2016-06-17
我找到了一個(gè)方法,親測(cè)有效的:
寫(xiě)一個(gè)server ?然后啟動(dòng)一個(gè)線程,線程里面定義一個(gè)全局靜態(tài)變量,線程定時(shí)運(yùn)行獲取access_token,然后放到內(nèi)存中,取的時(shí)候通過(guò)這個(gè)靜態(tài)變量取就可以了。
jar包自己找吧