HDL_ON/DAL/Server/HttpUtil.cs
@@ -12,7 +12,7 @@
    public class HttpUtil
    {
        #region HttpUtil 全局常量
        #region **********全局常量**********
        ///// <summary>
        ///// API_HTTPS
        ///// </summary>
@@ -36,6 +36,7 @@
        #endregion
        #region **********网络请求封装**********
        /// <summary>
        /// 固定域名,正式环境
        /// </summary>
@@ -145,7 +146,7 @@
        /// <param name="replaceToken"></param>
        /// <param name="mTimeout"></param>
        /// <returns></returns>
        public static ResponsePackNew RequestHttps(Method method, string apiPath, string bodyParameterJson = null, Dictionary<string, object> queryDictionary = null, Dictionary<string, object> urlSegmentDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 10)
        static ResponsePackNew RequestHttpsBase(Method method, string apiPath, string bodyParameterJson = null, Dictionary<string, object> queryDictionary = null, Dictionary<string, object> urlSegmentDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 10)
        {
            #region HttpWebRequest
            try
@@ -167,7 +168,6 @@
                RestRequest request = new RestRequest(method);
                request.Timeout = mTimeout * 1000;
                request.AddHeader("content-type", "application/json");
                //request.AddHeader ("cache-control", "no-cache");
                if (string.IsNullOrEmpty(replaceToken))
                {
@@ -207,7 +207,6 @@
                {
                    try
                    {
                        ResponsePackNew revertObj = new ResponsePackNew() { };
                        revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(response.Content);
                        //*****一些判空处理*****************
@@ -222,8 +221,6 @@
                        }
                        //*****一些判空处理*****************
                        ////统一转成大写
                        //revertObj.StateCode = revertObj.StateCode.ToUpper ();
                        return revertObj;
                    }
                    catch (Exception ex)
@@ -247,6 +244,69 @@
            #endregion
        }
        /// <summary>
        /// 通用  请求服务器方法
        /// 增加token过期处理
        /// </summary>
        /// <param name="method"></param>
        /// <param name="apiPath"></param>
        /// <param name="bodyParameterJson"></param>
        /// <param name="queryDictionary"></param>
        /// <param name="urlSegmentDictionary"></param>
        /// <param name="urlHead"></param>
        /// <param name="replaceToken"></param>
        /// <param name="mTimeout"></param>
        /// <returns></returns>
        public static ResponsePackNew RequestHttps(Method method, string apiPath, string bodyParameterJson = null, Dictionary<string, object> queryDictionary = null, Dictionary<string, object> urlSegmentDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 10)
        {
            var responsePackNew = RequestHttpsBase(method, apiPath, bodyParameterJson, queryDictionary, urlSegmentDictionary, urlHead, replaceToken, mTimeout);
            //*****************Token过期处理*****************
            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
            {
                //刷新Token
                if (RefreshToken()) {
                    return RequestHttpsBase(method, apiPath, bodyParameterJson, queryDictionary, urlSegmentDictionary, urlHead, replaceToken, mTimeout);
                }
                else
                {
                    return responsePackNew;
                }
            }
            //*****************Token过期处理*****************
            return responsePackNew;
        }
        /// <summary>
        /// 刷新Token
        /// </summary>
        /// <returns></returns>
        static bool RefreshToken()
        {
            try
            {
                var requestJson = GetSignRequestJson(new RefreshTokenObj()
                {
                    refreshToken = UserInfo.Current.RefreshToken,
                });
                var revertObj = RequestHttpsBase(Method.POST, NewAPI.API_POST_Login, requestJson);
                if (revertObj.Code == StateCode.SUCCESS)
                {
                    var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(revertObj.Data.ToString());
                    UserInfo.Current.LoginTokenString = revertData.headerPrefix + revertData.accessToken;
                    UserInfo.Current.RefreshToken = revertData.refreshToken;
                    UserInfo.Current.LastTime = DateTime.Now;
                    UserInfo.Current.SaveUserInfo();
                    return true;
                }
                return false;
            }
            catch
            {
                return false;
            }
        }
        /// <summary>
@@ -275,7 +335,6 @@
                ////**************测试**************
                RestClient client = new RestClient(requestFullUrl);
                //client.Timeout = mTimeout * 1000;
                RestRequest request = new RestRequest(Method.POST);
                request.Timeout = mTimeout * 1000;
                request.AddHeader("content-type", "application/json");
@@ -454,7 +513,9 @@
        }
        #endregion
        #region **********签名校验**********
        /// <summary>
        /// 
        /// </summary>
@@ -551,6 +612,7 @@
            }
        }
        #endregion
    }
    /// <summary>
@@ -586,7 +648,5 @@
    }
}