Use static to define variables and expiration times
// ===================== initializing static data ========================== #region Private Static DateTime tokenexptime = DateTime.Now.AddDays (-5); // Access_token Expiration Time Private Static string ""; // the pass of the interface #endregion
Actual combat:
/// <summary> /////Get Access_token, but will expire for 7,200 seconds. Often used and will be limited, so you have to use static storage/// </summary> /// <returns></returns> PublicString Get_access_token ()#region{DateTime Nowtime=DateTime.Now; if(Nowtime >tokenexptime) {HttpWebRequest WebRequest= (HttpWebRequest) webrequest.create ("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+ This. Corpid +"&corpsecret="+ This. Secret); Webrequest.method="GET"; HttpWebResponse WebResponse=(HttpWebResponse) webrequest.getresponse (); StreamReader SR=NewStreamReader (WebResponse.GetResponseStream (), Encoding.UTF8); stringJSON =Sr. ReadToEnd (); Jsondata Data=Jsonmapper.toobject (JSON); if(data["Access_token"] ==NULL) {log. Writelog ("Get access_token Error, error message is:"+JSON); Access_token=""; } Access_token= data["Access_token"]. ToString (); Tokenexptime= Nowtime. AddMinutes ( -);//Reset Expiration Time } returnAccess_token; } #endregion
C #-Solutions for expired tokens