namespace IStation.DataDockingApi { /// /// Token /// public class TokenHelper { private static DateTime _lastTokenTime; private static string _token = null; //获取Token private static string GetToken() { var result = HttpRequestHelper.Login(); if (result == null) { return default; } if (result.status != "SUCCESS") { var json = JsonHelper.Object2Json(result); LogHelper.Info(json); return default; } return result.content.token; } //验证过期时间 private static bool Verify() { var appParas = AppParasHelper.Get(); if (_lastTokenTime.AddHours(appParas.expire) < DateTime.Now) { return false; } return true; } /// /// 获取 (验证过期时间,使用缓存token) /// public static string Get() { if (string.IsNullOrEmpty(_token)) { _token = GetToken(); _lastTokenTime = DateTime.Now; } if (!Verify()) { _token = GetToken(); _lastTokenTime = DateTime.Now; } return _token; } /// /// 重新获取 (不做任何验证,重新获取token,之后更新缓存) /// public static string GetAgain() { _token = GetToken(); _lastTokenTime = DateTime.Now; return _token; } } }