From ef1cfae3cce9fd0a6ef3c3d94d60ca641cc30f6f Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 14 一月 2021 17:58:57 +0800
Subject: [PATCH] 2021-01-14 1.增加判断当前值是否需要参与签名方法,保持跟云端一致

---
 Crabtree/SmartHome/HDL/Common/HttpUtil/HttpUtil.cs |  387 +++++++++++++++++++++++--------------------------------
 1 files changed, 163 insertions(+), 224 deletions(-)

diff --git a/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpUtil.cs b/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpUtil.cs
index d391493..8308e82 100644
--- a/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpUtil.cs
+++ b/Crabtree/SmartHome/HDL/Common/HttpUtil/HttpUtil.cs
@@ -55,9 +55,9 @@
         /// <param name="replaceToken"></param>
         /// <param name="mTimeout"></param>
         /// <returns></returns>
-        public static ResponsePackNew RequestHttpsGet(string apiPath, Dictionary<string, object> queryDictionary = null, Dictionary<string, object> urlSegmentDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 10)
+        public static ResponsePackNew RequestHttpsGet (string apiPath, Dictionary<string, object> queryDictionary = null, Dictionary<string, object> urlSegmentDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 10)
         {
-            return RequestHttps(Method.GET, apiPath, null, queryDictionary, urlSegmentDictionary, urlHead, replaceToken, mTimeout);
+            return RequestHttps (Method.GET, apiPath, null, queryDictionary, urlSegmentDictionary, urlHead, replaceToken, mTimeout);
         }
 
         ///// <summary>
@@ -95,7 +95,7 @@
         /// <param name="bodyParameterJson"></param>
         /// <param name="mTimeout"></param>
         /// <returns></returns>
-        public static ResponsePackNew RequestHttpsPostFroHome(string apiPath, string bodyParameterJson, int mTimeout = 10)
+        public static ResponsePackNew RequestHttpsPostFroHome (string apiPath, string bodyParameterJson, int mTimeout = 10)
         {
             //string urlHead2 = UserConfig.Instance.CurrentRegion.regionUrl;
             string urlHead = GlobalRequestHttpsHost;
@@ -104,7 +104,7 @@
             //{
             //    replaceToken = DB_ResidenceData.residenceData.MasterToken;
             //}
-            return RequestHttps(Method.POST, apiPath, bodyParameterJson, null, null, urlHead, "", mTimeout);
+            return RequestHttps (Method.POST, apiPath, bodyParameterJson, null, null, urlHead, "", mTimeout);
         }
 
         /// <summary>
@@ -117,9 +117,9 @@
         /// <param name="replaceToken"></param>
         /// <param name="mTimeout"></param>
         /// <returns></returns>
-        public static ResponsePackNew RequestHttpsPost(string apiPath, string bodyParameterJson, string urlHead = "", string replaceToken = "", int mTimeout = 10)
+        public static ResponsePackNew RequestHttpsPost (string apiPath, string bodyParameterJson, string urlHead = "", string replaceToken = "", int mTimeout = 10)
         {
-            return RequestHttps(Method.POST, apiPath, bodyParameterJson, null, null, urlHead, replaceToken, mTimeout);
+            return RequestHttps (Method.POST, apiPath, bodyParameterJson, null, null, urlHead, replaceToken, mTimeout);
         }
 
         /// <summary>
@@ -132,9 +132,9 @@
         /// <param name="replaceToken"></param>
         /// <param name="mTimeout"></param>
         /// <returns></returns>
-        public static ResponsePackNew RequestHttpsPost(string apiPath, Dictionary<string, object> queryDictionary, string urlHead = "", string replaceToken = "", int mTimeout = 10)
+        public static ResponsePackNew RequestHttpsPost (string apiPath, Dictionary<string, object> queryDictionary, string urlHead = "", string replaceToken = "", int mTimeout = 10)
         {
-            return RequestHttps(Method.POST, apiPath, null, queryDictionary, null, urlHead, replaceToken, mTimeout);
+            return RequestHttps (Method.POST, apiPath, null, queryDictionary, null, urlHead, replaceToken, mTimeout);
         }
 
         /// <summary>
@@ -149,14 +149,12 @@
         /// <param name="replaceToken"></param>
         /// <param name="mTimeout"></param>
         /// <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)
+        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
-            {
+            try {
 
-                if (string.IsNullOrEmpty(urlHead))
-                {
+                if (string.IsNullOrEmpty (urlHead)) {
                     urlHead = GlobalRequestHttpsHost;
                 }
                 string requestFullUrl = urlHead + apiPath;
@@ -166,83 +164,64 @@
                 //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
                 ////**************娴嬭瘯**************
 
-                RestClient client = new RestClient(requestFullUrl);
+                RestClient client = new RestClient (requestFullUrl);
 
-                RestRequest request = new RestRequest(method);
+                RestRequest request = new RestRequest (method);
                 request.Timeout = mTimeout * 1000;
-                request.AddHeader("content-type", "application/json");
+                request.AddHeader ("content-type", "application/json");
 
-                if (string.IsNullOrEmpty(replaceToken))
-                {
-                    if(MainPage.LoginUser != null)
-                    {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */
-                        request.AddHeader("Authorization",  MainPage.LoginUser.LoginTokenString);
+                if (string.IsNullOrEmpty (replaceToken)) {
+                    if (MainPage.LoginUser != null) {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */
+                        request.AddHeader ("Authorization", MainPage.LoginUser.LoginTokenString);
                     }
-                }
-                else
-                {
-                    request.AddHeader("Authorization", replaceToken); 
-                }
-           
-                if (bodyParameterJson != null)
-                {
-                    request.AddParameter("application/json", bodyParameterJson, ParameterType.RequestBody);
+                } else {
+                    request.AddHeader ("Authorization", replaceToken);
                 }
 
-                if (queryDictionary != null)
-                {
-                    foreach (var data in queryDictionary)
-                    {
-                        request.AddQueryParameter(data.Key, data.Value.ToString());
+                if (bodyParameterJson != null) {
+                    request.AddParameter ("application/json", bodyParameterJson, ParameterType.RequestBody);
+                }
+
+                if (queryDictionary != null) {
+                    foreach (var data in queryDictionary) {
+                        request.AddQueryParameter (data.Key, data.Value.ToString ());
                     }
                 }
 
-                if (urlSegmentDictionary != null)
-                {
-                    foreach (var data in urlSegmentDictionary)
-                    {
-                        request.AddUrlSegment(data.Key, data.Value.ToString());
+                if (urlSegmentDictionary != null) {
+                    foreach (var data in urlSegmentDictionary) {
+                        request.AddUrlSegment (data.Key, data.Value.ToString ());
                     }
                 }
 
-                IRestResponse response = client.Execute(request);
-                if (response.StatusCode == HttpStatusCode.OK)
-                {
-                    try
-                    {
-                        ResponsePackNew revertObj = new ResponsePackNew() { };
-                        revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(response.Content);
+                IRestResponse response = client.Execute (request);
+                if (response.StatusCode == HttpStatusCode.OK) {
+                    try {
+                        ResponsePackNew revertObj = new ResponsePackNew () { };
+                        revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew> (response.Content);
                         //*****涓�浜涘垽绌哄鐞�*****************
-                        if (revertObj.Code == null)
-                        {
+                        if (revertObj.Code == null) {
                             revertObj.Code = StateCode.DATA_EXCEPTION;
                         }
 
-                        if (revertObj.Data == null)
-                        {
+                        if (revertObj.Data == null) {
                             revertObj.Data = "";
                         }
                         //*****涓�浜涘垽绌哄鐞�*****************
 
                         return revertObj;
+                    } catch (Exception ex) {
+                        Utlis.WriteLine (ex.Message);
+                        return new ResponsePackNew () { Code = StateCode.DATA_EXCEPTION };
                     }
-                    catch (Exception ex)
-                    {
-                        Utlis.WriteLine(ex.Message);
-                        return new ResponsePackNew() { Code = StateCode.DATA_EXCEPTION };
-                    }
-                }
-                else
-                {
-                    Utlis.WriteLine(response.Content);
-                    return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+                } else {
+                    Utlis.WriteLine (response.Content);
+                    return new ResponsePackNew () { Code = StateCode.NETWORK_ERROR };
                 }
 
-            }
-            catch (Exception ex)
-            {
-                Utlis.WriteLine(ex.Message);
-                return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+            } catch (Exception ex) {
+                Utlis.WriteLine (ex.Message);
+                return new ResponsePackNew () { Code = StateCode.NETWORK_ERROR };
             }
 
             #endregion
@@ -262,18 +241,15 @@
         /// <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)
+        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);
+            var responsePackNew = RequestHttpsBase (method, apiPath, bodyParameterJson, queryDictionary, urlSegmentDictionary, urlHead, replaceToken, mTimeout);
             //*****************Token杩囨湡澶勭悊*****************
-            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
-            {
+            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) {
                 //鍒锋柊Token
-                if (RefreshToken()) {
-                    return RequestHttpsBase(method, apiPath, bodyParameterJson, queryDictionary, urlSegmentDictionary, urlHead, replaceToken, mTimeout);
-                }
-                else
-                {
+                if (RefreshToken ()) {
+                    return RequestHttpsBase (method, apiPath, bodyParameterJson, queryDictionary, urlSegmentDictionary, urlHead, replaceToken, mTimeout);
+                } else {
                     return responsePackNew;
                 }
             }
@@ -286,28 +262,23 @@
         /// 鍒锋柊Token
         /// </summary>
         /// <returns></returns>
-        static bool RefreshToken()
+        static bool RefreshToken ()
         {
-            try
-            {
-                var requestJson = GetSignRequestJson(new RefreshTokenObj()
-                {
+            try {
+                var requestJson = GetSignRequestJson (new RefreshTokenObj () {
                     refreshToken = MainPage.LoginUser.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());
+                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 ());
                     MainPage.LoginUser.LoginTokenString = revertData.headerPrefix + revertData.accessToken;
                     MainPage.LoginUser.RefreshToken = revertData.refreshToken;
                     MainPage.LoginUser.LastTime = DateTime.Now;
-                    MainPage.LoginUser.SaveUserInfo();
+                    MainPage.LoginUser.SaveUserInfo ();
                     return true;
                 }
                 return false;
-            }
-            catch
-            {
+            } catch {
                 return false;
             }
         }
@@ -322,13 +293,11 @@
         /// <param name="replaceToken"></param>
         /// <param name="mTimeout"></param>
         /// <returns></returns>
-        public static byte[] RequestHttpsDownload(string apiPath, string bodyParameterJson = null, Dictionary<string, object> queryDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 20)
+        public static byte [] RequestHttpsDownload (string apiPath, string bodyParameterJson = null, Dictionary<string, object> queryDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 20)
         {
             #region RestRequest
-            try
-            {
-                if (string.IsNullOrEmpty(urlHead))
-                {
+            try {
+                if (string.IsNullOrEmpty (urlHead)) {
                     urlHead = GlobalRequestHttpsHost;
                 }
                 string requestFullUrl = urlHead + apiPath;
@@ -337,42 +306,33 @@
                 //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
                 ////**************娴嬭瘯**************
 
-                RestClient client = new RestClient(requestFullUrl);
-                RestRequest request = new RestRequest(Method.POST);
+                RestClient client = new RestClient (requestFullUrl);
+                RestRequest request = new RestRequest (Method.POST);
                 request.Timeout = mTimeout * 1000;
-                request.AddHeader("content-type", "application/json");
+                request.AddHeader ("content-type", "application/json");
 
-                if (string.IsNullOrEmpty(replaceToken))
-                {
-                    if ( MainPage.LoginUser != null)
-                    {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */
-                        request.AddHeader("Authorization",  MainPage.LoginUser.LoginTokenString);
+                if (string.IsNullOrEmpty (replaceToken)) {
+                    if (MainPage.LoginUser != null) {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */
+                        request.AddHeader ("Authorization", MainPage.LoginUser.LoginTokenString);
                     }
-                }
-                else
-                {
-                    request.AddHeader("Authorization", replaceToken);
+                } else {
+                    request.AddHeader ("Authorization", replaceToken);
                 }
 
-                if (bodyParameterJson != null)
-                {
-                    request.AddParameter("application/json", bodyParameterJson, ParameterType.RequestBody);
+                if (bodyParameterJson != null) {
+                    request.AddParameter ("application/json", bodyParameterJson, ParameterType.RequestBody);
                 }
 
-                if (queryDictionary != null)
-                {
-                    foreach (var data in queryDictionary)
-                    {
-                        request.AddQueryParameter(data.Key, data.Value.ToString());
+                if (queryDictionary != null) {
+                    foreach (var data in queryDictionary) {
+                        request.AddQueryParameter (data.Key, data.Value.ToString ());
                     }
                 }
 
-                IRestResponse response = client.Execute(request);
+                IRestResponse response = client.Execute (request);
                 return response.RawBytes;
-            }
-            catch (Exception ex)
-            {
-                Utlis.WriteLine(ex.Message);
+            } catch (Exception ex) {
+                Utlis.WriteLine (ex.Message);
                 return null;
             }
             #endregion
@@ -391,14 +351,12 @@
         /// <param name="replaceToken"></param>
         /// <param name="mTimeout"></param>
         /// <returns></returns>
-        public static ResponsePackNew RequestHttpsUpload(Method method, string apiPath, object bodyParameterObject = null, Dictionary<string, object> queryDictionary = null, Dictionary<string, object> urlSegmentDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 20)
+        public static ResponsePackNew RequestHttpsUpload (Method method, string apiPath, object bodyParameterObject = null, Dictionary<string, object> queryDictionary = null, Dictionary<string, object> urlSegmentDictionary = null, string urlHead = "", string replaceToken = "", int mTimeout = 20)
         {
             #region HttpWebRequest
-            try
-            {
+            try {
 
-                if (string.IsNullOrEmpty(urlHead))
-                {
+                if (string.IsNullOrEmpty (urlHead)) {
                     urlHead = GlobalRequestHttpsHost;
                 }
                 string requestFullUrl = urlHead + apiPath;
@@ -407,77 +365,59 @@
                 //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
                 ////**************娴嬭瘯**************
 
-                RestClient client = new RestClient(requestFullUrl);
-                RestRequest request = new RestRequest(method);
+                RestClient client = new RestClient (requestFullUrl);
+                RestRequest request = new RestRequest (method);
                 request.Timeout = mTimeout * 1000;
                 //request.AddHeader ("content-type", "application/json");
-                request.AddHeader("content-type", "application/octet-stream");
+                request.AddHeader ("content-type", "application/octet-stream");
 
-                if (string.IsNullOrEmpty(replaceToken))
-                {
-                    if ( MainPage.LoginUser != null)
-                    {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */
-                        request.AddHeader("Authorization",  MainPage.LoginUser.LoginTokenString);
+                if (string.IsNullOrEmpty (replaceToken)) {
+                    if (MainPage.LoginUser != null) {/* 濡傛灉涓嶉渶瑕侀獙璇乀oken鍙互涓嶇敤浼犲叆 */
+                        request.AddHeader ("Authorization", MainPage.LoginUser.LoginTokenString);
                     }
-                }
-                else
-                {
-                    request.AddHeader("Authorization", replaceToken);
+                } else {
+                    request.AddHeader ("Authorization", replaceToken);
                 }
 
-                if (bodyParameterObject != null)
-                {
-                    request.AddParameter("application/octet-stream", bodyParameterObject, ParameterType.RequestBody);
+                if (bodyParameterObject != null) {
+                    request.AddParameter ("application/octet-stream", bodyParameterObject, ParameterType.RequestBody);
                 }
 
-                if (queryDictionary != null)
-                {
-                    foreach (var data in queryDictionary)
-                    {
-                        request.AddQueryParameter(data.Key, data.Value.ToString());
+                if (queryDictionary != null) {
+                    foreach (var data in queryDictionary) {
+                        request.AddQueryParameter (data.Key, data.Value.ToString ());
                     }
                 }
 
-                if (urlSegmentDictionary != null)
-                {
-                    foreach (var data in urlSegmentDictionary)
-                    {
-                        request.AddUrlSegment(data.Key, data.Value.ToString());
+                if (urlSegmentDictionary != null) {
+                    foreach (var data in urlSegmentDictionary) {
+                        request.AddUrlSegment (data.Key, data.Value.ToString ());
                     }
                 }
 
-                IRestResponse response = client.Execute(request);
-                if (response.StatusCode == HttpStatusCode.OK)
-                {
-                    try
-                    {
-                        ResponsePackNew revertObj = new ResponsePackNew() { };
-                        revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(response.Content);
-                        if (revertObj.Code == null)
-                        {
+                IRestResponse response = client.Execute (request);
+                if (response.StatusCode == HttpStatusCode.OK) {
+                    try {
+                        ResponsePackNew revertObj = new ResponsePackNew () { };
+                        revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew> (response.Content);
+                        if (revertObj.Code == null) {
                             revertObj.Code = StateCode.DATA_EXCEPTION;
                         }
                         ////缁熶竴杞垚澶у啓
                         //revertObj.StateCode = revertObj.StateCode.ToUpper ();
                         return revertObj;
+                    } catch (Exception ex) {
+                        Utlis.WriteLine (ex.Message);
+                        return new ResponsePackNew () { Code = StateCode.DATA_EXCEPTION };
                     }
-                    catch (Exception ex)
-                    {
-                        Utlis.WriteLine(ex.Message);
-                        return new ResponsePackNew() { Code = StateCode.DATA_EXCEPTION };
-                    }
-                }
-                else
-                {
-                    Utlis.WriteLine(response.Content);
-                    return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+                } else {
+                    Utlis.WriteLine (response.Content);
+                    return new ResponsePackNew () { Code = StateCode.NETWORK_ERROR };
                 }
 
-            }
-            catch (Exception ex)
-            {
-                Utlis.WriteLine(ex.Message);
-                return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
+            } catch (Exception ex) {
+                Utlis.WriteLine (ex.Message);
+                return new ResponsePackNew () { Code = StateCode.NETWORK_ERROR };
             }
 
             #endregion
@@ -494,21 +434,18 @@
         /// <param name="replaceToken"></param>
         /// <param name="mTimeout"></param>
         /// <returns></returns>
-        public static byte[] HttpsDownload(string requestFullUrl, int mTimeout = 30)
+        public static byte [] HttpsDownload (string requestFullUrl, int mTimeout = 30)
         {
             #region RestRequest
-            try
-            {
-                RestClient client = new RestClient(requestFullUrl);
-                RestRequest request = new RestRequest(Method.GET);
+            try {
+                RestClient client = new RestClient (requestFullUrl);
+                RestRequest request = new RestRequest (Method.GET);
                 request.Timeout = mTimeout * 1000;
 
-                IRestResponse response = client.Execute(request);
+                IRestResponse response = client.Execute (request);
                 return response.RawBytes;
-            }
-            catch (Exception ex)
-            {
-                Utlis.WriteLine(ex.Message);
+            } catch (Exception ex) {
+                Utlis.WriteLine (ex.Message);
                 return null;
             }
             #endregion
@@ -531,10 +468,10 @@
         /// 鑾峰彇褰撳墠鏃堕棿鎴冲��
         /// </summary>
         /// <returns></returns>
-        static string GetTimestamp()
+        static string GetTimestamp ()
         {
-            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
-            return ((long)(DateTime.Now - startTime).TotalMilliseconds).ToString(); // 鐩稿樊绉掓暟
+            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime (new System.DateTime (1970, 1, 1)); // 褰撳湴鏃跺尯
+            return ((long)(DateTime.Now - startTime).TotalMilliseconds).ToString (); // 鐩稿樊绉掓暟
             //return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟
         }
 
@@ -543,15 +480,29 @@
         /// </summary>
         /// <param name="signstr"></param>
         /// <returns></returns>
-        static string SignMD5Encrypt(string s)
+        static string SignMD5Encrypt (string s)
         {
-            byte[] sign = MD5.Create().ComputeHash(UTF8Encoding.UTF8.GetBytes(s));
+            byte [] sign = MD5.Create ().ComputeHash (UTF8Encoding.UTF8.GetBytes (s));
             string signstr = string.Empty;
-            foreach (byte item in sign)
-            {
-                signstr += item.ToString("X2");
+            foreach (byte item in sign) {
+                signstr += item.ToString ("X2");
             }
-            return signstr.ToLower();
+            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>
@@ -560,57 +511,45 @@
         /// 璁$畻sign绛惧悕
         /// </summary>
         /// <returns></returns>
-        public static string GetSignRequestJson(object requestObj)
+        public static string GetSignRequestJson (object requestObj)
         {
-            try
-            {
+            try {
                 //1. 灏唌odel瀹炰綋杞负Dictionary<string, object>
-                var paramDictionary = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(Newtonsoft.Json.JsonConvert.SerializeObject(requestObj));
+                var paramDictionary = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>> (Newtonsoft.Json.JsonConvert.SerializeObject (requestObj));
                 //2. 璁$畻sign
-                if (paramDictionary != null)
-                {
-                    paramDictionary.Add("appKey", APP_KEY);
-                    paramDictionary.Add("timestamp", GetTimestamp());
+                if (paramDictionary != null) {
+                    paramDictionary.Add ("appKey", APP_KEY);
+                    paramDictionary.Add ("timestamp", GetTimestamp ());
                     //2.1 瀛楀吀鍗囧簭
-                    paramDictionary = paramDictionary.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
+                    paramDictionary = paramDictionary.OrderBy (o => o.Key).ToDictionary (o => o.Key, p => p.Value);
                     //2.2 鎷兼帴鎸塙RL閿�煎
                     string str = string.Empty;
-                    foreach (KeyValuePair<string, object> item in paramDictionary)
-                    {
+                    foreach (KeyValuePair<string, object> item in paramDictionary) {
                         //Value涓簄ull涓嶅弬鍔犳牎楠�
-                        if (item.Value != null)
-                        {
-                            //Value.ToString()涓簄ull鎴栬��""涔熶笉鍙傚姞鏍¢獙
-                            if (!string.IsNullOrEmpty(item.Value.ToString()))
-                            {
+                        if (item.Value != null) {
+                            //妫�娴嬪綋鍓嶅弬鏁版槸鍚﹂渶瑕佸弬涓庢牎楠�
+                            if (IfValueNeedSign (item.Value.ToString ())) {
                                 //濡傛灉鏄痓ool绫诲瀷锛岃杞皬鍐�
-                                if (item.Value is bool)
-                                {
-                                    str += item.Key + "=" + item.Value.ToString().ToLower() + "&";
-                                }
-                                else
-                                {
-                                    str += item.Key + "=" + item.Value.ToString() + "&";
+                                if (item.Value is bool) {
+                                    str += item.Key + "=" + item.Value.ToString ().ToLower () + "&";
+                                } else {
+                                    str += item.Key + "=" + item.Value.ToString () + "&";
                                 }
                             }
                         }
                     }
 
                     //2.3 鎷兼帴SECRET_KEY
-                    str = str.Substring(0, str.Length - 1) + SECRET_KEY;
+                    str = str.Substring (0, str.Length - 1) + SECRET_KEY;
                     //2.4 MD5杞崲+杞皬鍐�
-                    var signstr = SignMD5Encrypt(str);
-                    paramDictionary.Add("sign", signstr);
-                    var signResult = Newtonsoft.Json.JsonConvert.SerializeObject(paramDictionary);
+                    var signstr = SignMD5Encrypt (str);
+                    paramDictionary.Add ("sign", signstr);
+                    var signResult = Newtonsoft.Json.JsonConvert.SerializeObject (paramDictionary);
                     return signResult;
-                }
-                else
-                {
+                } else {
                     return "";
                 }
-            }
-            catch
-            {
+            } catch {
                 return "";
             }
         }

--
Gitblit v1.8.0