使用static來定義變量和過期時間
//===================== 初始化靜態數據 ========================== #region private static DateTime TokenExpTime = DateTime.Now.AddDays(-5); //Access_Token過期時間 private static string Access_Token = ""; //微信接口的通行證 #endregion
實戰:
/// <summary> /// //獲取access_token ,但是會過期,時間為7200秒。經常用又會被限制,所以得使用靜態存儲 /// </summary> /// <returns></returns> public String 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 = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8); string json = sr.ReadToEnd(); JsonData data = JsonMapper.ToObject(json); if (data["access_token"] == null) { log.WriteLog("獲取access_token出錯,錯誤信息為:" + json); Access_Token = ""; } Access_Token = data["access_token"].ToString(); TokenExpTime = nowtime.AddMinutes(90);//重新設置過期時間 } return Access_Token; } #endregion