From f77a3add1e7ab266e473da9128bbe5758ba3a890 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期日, 20 十二月 2020 19:29:03 +0800 Subject: [PATCH] Merge branch 'NewFilePath' into CJL --- HDL_ON/DAL/Server/HttpUtil.cs | 102 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 81 insertions(+), 21 deletions(-) diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs index 1cd630f..b6367ed 100644 --- a/HDL_ON/DAL/Server/HttpUtil.cs +++ b/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> /// 鍥哄畾鍩熷悕,姝e紡鐜 /// </summary> @@ -94,7 +95,7 @@ /// <returns></returns> public static ResponsePackNew RequestHttpsPostFroHome(string apiPath, string bodyParameterJson, int mTimeout = 10) { - string urlHead = DB_ResidenceData.residenceData.residecenInfo.regionUrl; + string urlHead = DB_ResidenceData.Instance.CurrentRegion.regionUrl; //var replaceToken = ""; //if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare) //{ @@ -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 @@ -153,7 +154,7 @@ if (string.IsNullOrEmpty(urlHead)) { - urlHead = UserInfo.Current.RequestHttpsHost; + urlHead = OnAppConfig.Instance.RequestHttpsHost; } string requestFullUrl = urlHead + apiPath; @@ -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,13 +207,12 @@ { try { - ResponsePackNew revertObj = new ResponsePackNew() { }; revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(response.Content); //*****涓�浜涘垽绌哄鐞�***************** if (revertObj.Code == null) { - revertObj.Code = "DATA_EXCEPTION"; + revertObj.Code = StateCode.DATA_EXCEPTION; } if (revertObj.Data == null) @@ -222,31 +221,92 @@ } //*****涓�浜涘垽绌哄鐞�***************** - ////缁熶竴杞垚澶у啓 - //revertObj.StateCode = revertObj.StateCode.ToUpper (); return revertObj; } catch (Exception ex) { HDL_ON.Utlis.WriteLine(ex.Message); - return new ResponsePackNew() { Code = "DATA_EXCEPTION" }; + return new ResponsePackNew() { Code = StateCode.DATA_EXCEPTION }; } } else { HDL_ON.Utlis.WriteLine(response.Content); - return new ResponsePackNew() { Code = "NETWORK_ERROR" }; + return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; } } catch (Exception ex) { HDL_ON.Utlis.WriteLine(ex.Message); - return new ResponsePackNew() { Code = "NETWORK_ERROR" }; + return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; } #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> @@ -266,7 +326,7 @@ { if (string.IsNullOrEmpty(urlHead)) { - urlHead = UserInfo.Current.RequestHttpsHost; + urlHead = OnAppConfig.Instance.RequestHttpsHost; } string requestFullUrl = urlHead + apiPath; @@ -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"); @@ -337,7 +396,7 @@ if (string.IsNullOrEmpty(urlHead)) { - urlHead = UserInfo.Current.RequestHttpsHost; + urlHead = OnAppConfig.Instance.RequestHttpsHost; } string requestFullUrl = urlHead + apiPath; @@ -394,7 +453,7 @@ revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(response.Content); if (revertObj.Code == null) { - revertObj.Code = "DATA_EXCEPTION"; + revertObj.Code = StateCode.DATA_EXCEPTION; } ////缁熶竴杞垚澶у啓 //revertObj.StateCode = revertObj.StateCode.ToUpper (); @@ -403,20 +462,20 @@ catch (Exception ex) { HDL_ON.Utlis.WriteLine(ex.Message); - return new ResponsePackNew() { Code = "DATA_EXCEPTION" }; + return new ResponsePackNew() { Code = StateCode.DATA_EXCEPTION }; } } else { HDL_ON.Utlis.WriteLine(response.Content); - return new ResponsePackNew() { Code = "NETWORK_ERROR" }; + return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; } } catch (Exception ex) { HDL_ON.Utlis.WriteLine(ex.Message); - return new ResponsePackNew() { Code = "NETWORK_ERROR" }; + return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; } #endregion @@ -454,7 +513,9 @@ } + #endregion + #region **********绛惧悕鏍¢獙********** /// <summary> /// /// </summary> @@ -552,6 +613,7 @@ } } + #endregion } /// <summary> @@ -587,7 +649,5 @@ } - - } -- Gitblit v1.8.0