JLChen
2021-08-18 c8c33200e43f05136eca9fc8ff4942f8def31cc6
HDL_ON/DAL/Server/HttpUtil.cs
@@ -13,10 +13,13 @@
    {
        #region **********全局常量**********
        ///// <summary>
        ///// API_HTTPS
        ///// </summary>
        //public const string API_HTTPS = "https://";
        /// <summary>
        /// 固定域名,正式环境
        /// 公共域名就近解析
        ///
        /// </summary>
        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
        /// <summary>
        /// RegionMark
        /// </summary>
@@ -37,12 +40,6 @@
        #endregion
        #region **********网络请求封装**********
        /// <summary>
        /// 固定域名,正式环境
        /// 公共域名就近解析
        /// </summary>
        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
        /// <summary>
        ///  Get  请求服务器方法
@@ -149,6 +146,12 @@
        /// <returns></returns>
        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)
        {
            //Dome模式登录
            if(MainPage.NoLoginMode)
            {
                return new ResponsePackNew() { Code = "0" };
            }
            #region HttpWebRequest
            try
            {
@@ -159,10 +162,6 @@
                }
                string requestFullUrl = urlHead + apiPath;
                ////**************测试**************
                //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
                ////**************测试**************
                RestClient client = new RestClient(requestFullUrl);
@@ -281,7 +280,7 @@
        /// <summary>
        /// 刷新Token
        /// 刷新  Token
        /// </summary>
        /// <returns></returns>
        static bool RefreshToken()
@@ -330,10 +329,6 @@
                    urlHead = OnAppConfig.Instance.RequestHttpsHost;
                }
                string requestFullUrl = urlHead + apiPath;
                ////**************测试**************
                //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
                ////**************测试**************
                RestClient client = new RestClient(requestFullUrl);
                RestRequest request = new RestRequest(Method.POST);
@@ -552,19 +547,36 @@
            }
            return signstr.ToLower();
        }
        /// <summary>
        /// 判断当前值是否需要参与签名,保持跟云端一致
        /// 空字符串不参与
        /// 数组,集合,对象不参与
        /// </summary>
        /// <param name="valueStr"></param>
        /// <returns></returns>
        static bool IfValueNeedSign(string valueStr)
        {
            if (string.IsNullOrEmpty(valueStr) || valueStr.StartsWith("{") || valueStr.StartsWith("["))
            {
                return false;
            }
            return true;
        }
        /// <summary>
        /// 2020-11-02
        /// 基础服务的接口都要校验sign
        /// 计算sign签名
        /// </summary>
        /// <returns></returns>
        public static string GetSignRequestJson(object requestObj)
        public static string GetSignRequestJson(object requestObj,Dictionary<string,object> paramDictionary = null)
        {
            try
            {
                //1. 将model实体转为Dictionary<string, object>
                var paramDictionary = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(Newtonsoft.Json.JsonConvert.SerializeObject(requestObj));
                if (paramDictionary == null)
                {
                    paramDictionary = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(Newtonsoft.Json.JsonConvert.SerializeObject(requestObj));
                }
                //2. 计算sign
                if (paramDictionary != null)
                {
@@ -580,7 +592,10 @@
                        if (item.Value != null)
                        {
                            //Value.ToString()为null或者""也不参加校验
                            if (!string.IsNullOrEmpty(item.Value.ToString()) && (item.Value is string || item.Value.GetType().IsValueType))
                            //if (!string.IsNullOrEmpty(item.Value.ToString()) && (item.Value is string || item.Value.GetType().IsValueType))
                            //{
                            //检测当前参数是否需要参与校验
                            if (IfValueNeedSign(item.Value.ToString()))
                            {
                                //如果是bool类型,要转小写
                                if (item.Value is bool)