From d4973876384be55df64de45db8a511d1e0330872 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 23 六月 2021 17:06:20 +0800
Subject: [PATCH] 房间小图列表
---
HDL_ON/DAL/Server/HttpUtil.cs | 248 +++++++++++++++++++++++++++++++++++++------------
1 files changed, 186 insertions(+), 62 deletions(-)
diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs
index cd78756..32c87e1 100644
--- a/HDL_ON/DAL/Server/HttpUtil.cs
+++ b/HDL_ON/DAL/Server/HttpUtil.cs
@@ -6,18 +6,20 @@
using System.Text;
using HDL_ON.Entity;
using RestSharp;
-using Shared;
namespace HDL_ON.DAL.Server
{
public class HttpUtil
{
- #region HttpUtil 鍏ㄥ眬甯搁噺
- ///// <summary>
- ///// API_HTTPS
- ///// </summary>
- //public const string API_HTTPS = "https://";
+ #region **********鍏ㄥ眬甯搁噺**********
+ /// <summary>
+ /// 鍥哄畾鍩熷悕,姝e紡鐜
+ /// 鍏叡鍩熷悕灏辫繎瑙f瀽
+ ///
+ /// </summary>
+ public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
+ //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
/// <summary>
/// RegionMark
/// </summary>
@@ -37,11 +39,7 @@
#endregion
- /// <summary>
- /// 鍥哄畾鍩熷悕
- /// </summary>
- //public const string GlobalRequestHttpsHost = "https://center.hdlcontrol.com";
- public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
+ #region **********缃戠粶璇锋眰灏佽**********
/// <summary>
/// Get 璇锋眰鏈嶅姟鍣ㄦ柟娉�
@@ -95,13 +93,13 @@
/// <returns></returns>
public static ResponsePackNew RequestHttpsPostFroHome(string apiPath, string bodyParameterJson, int mTimeout = 10)
{
- string urlHead = DB_ResidenceData.residenceData.residecenInfo.regionUrl;
- var replaceToken = "";
- if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare)
- {
- replaceToken = DB_ResidenceData.residenceData.MasterToken;
- }
- return RequestHttps(Method.POST, apiPath, bodyParameterJson, null, null, urlHead, replaceToken, mTimeout);
+ string urlHead = DB_ResidenceData.Instance.CurrentRegion.regionUrl;
+ //var replaceToken = "";
+ //if (DB_ResidenceData.residenceData.residecenInfo.IsOthreShare)
+ //{
+ // replaceToken = DB_ResidenceData.residenceData.MasterToken;
+ //}
+ return RequestHttps(Method.POST, apiPath, bodyParameterJson, null, null, urlHead, "", mTimeout);
}
/// <summary>
@@ -146,29 +144,34 @@
/// <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)
{
+ //Dome妯″紡鐧诲綍
+
+ if(MainPage.NoLoginMode)
+ {
+ return new ResponsePackNew() { Code = "0" };
+ }
#region HttpWebRequest
try
{
- //if (string.IsNullOrEmpty(urlHead))
- //{
- // urlHead = UserInfo.Current.RequestHttpsHost;
- //}
- //string requestFullUrl = urlHead + apiPath;
+ if (string.IsNullOrEmpty(urlHead))
+ {
+ urlHead = OnAppConfig.Instance.RequestHttpsHost;
+ }
+ string requestFullUrl = urlHead + apiPath;
- //**************娴嬭瘯**************
- string requestFullUrl = GlobalRequestHttpsHost + apiPath;
- //**************娴嬭瘯**************
+ ////**************娴嬭瘯**************
+ //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
+ ////**************娴嬭瘯**************
RestClient client = new RestClient(requestFullUrl);
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))
{
@@ -208,13 +211,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)
@@ -223,31 +225,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>
@@ -265,17 +328,17 @@
#region RestRequest
try
{
- //if (string.IsNullOrEmpty (urlHead)) {
- // urlHead = UserInfo.Current.RequestHttpsHost;
- //}
- //string requestFullUrl = urlHead + apiPath;
+ if (string.IsNullOrEmpty(urlHead))
+ {
+ urlHead = OnAppConfig.Instance.RequestHttpsHost;
+ }
+ string requestFullUrl = urlHead + apiPath;
- //**************娴嬭瘯**************
- string requestFullUrl = GlobalRequestHttpsHost + apiPath;
- //**************娴嬭瘯**************
+ ////**************娴嬭瘯**************
+ //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
+ ////**************娴嬭瘯**************
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");
@@ -335,14 +398,15 @@
try
{
- //if (string.IsNullOrEmpty (urlHead)) {
- // urlHead = UserInfo.Current.RequestHttpsHost;
- //}
- //string requestFullUrl = urlHead + apiPath;
+ if (string.IsNullOrEmpty(urlHead))
+ {
+ urlHead = OnAppConfig.Instance.RequestHttpsHost;
+ }
+ string requestFullUrl = urlHead + apiPath;
- //**************娴嬭瘯**************
- string requestFullUrl = GlobalRequestHttpsHost + apiPath;
- //**************娴嬭瘯**************
+ ////**************娴嬭瘯**************
+ //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
+ ////**************娴嬭瘯**************
RestClient client = new RestClient(requestFullUrl);
//client.Timeout = mTimeout * 1000;
@@ -393,7 +457,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 ();
@@ -402,26 +466,60 @@
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>
+ /// 涓嬭浇鏂囦欢 璇锋眰鏈嶅姟鍣ㄦ柟娉�
+ /// </summary>
+ /// <param name="apiPath"></param>
+ /// <param name="bodyParameterJson"></param>
+ /// <param name="queryDictionary"></param>
+ /// <param name="urlHead"></param>
+ /// <param name="replaceToken"></param>
+ /// <param name="mTimeout"></param>
+ /// <returns></returns>
+ public static byte[] HttpsDownload(string requestFullUrl, int mTimeout = 30)
+ {
+ #region RestRequest
+ try
+ {
+ RestClient client = new RestClient(requestFullUrl);
+ RestRequest request = new RestRequest(Method.GET);
+ request.Timeout = mTimeout * 1000;
+
+ IRestResponse response = client.Execute(request);
+ return response.RawBytes;
+ }
+ catch (Exception ex)
+ {
+ HDL_ON.Utlis.WriteLine(ex.Message);
+ return null;
+ }
+ #endregion
+
+ }
+
+ #endregion
+
+ #region **********绛惧悕鏍¢獙**********
/// <summary>
///
/// </summary>
@@ -438,7 +536,8 @@
static string GetTimestamp()
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
- return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟
+ return ((long)(DateTime.Now - startTime).TotalMilliseconds).ToString(); // 鐩稿樊绉掓暟
+ //return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟
}
/// <summary>
@@ -456,19 +555,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
/// 鍩虹鏈嶅姟鐨勬帴鍙i兘瑕佹牎楠宻ign
/// 璁$畻sign绛惧悕
/// </summary>
/// <returns></returns>
- public static string GetSignRequestJson(object requestObj)
+ public static string GetSignRequestJson(object requestObj,Dictionary<string,object> paramDictionary = null)
{
try
{
//1. 灏唌odel瀹炰綋杞负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)
{
@@ -484,7 +600,10 @@
if (item.Value != null)
{
//Value.ToString()涓簄ull鎴栬��""涔熶笉鍙傚姞鏍¢獙
- if (!string.IsNullOrEmpty(item.Value.ToString()))
+ //if (!string.IsNullOrEmpty(item.Value.ToString()) && (item.Value is string || item.Value.GetType().IsValueType))
+ //{
+ //妫�娴嬪綋鍓嶅弬鏁版槸鍚﹂渶瑕佸弬涓庢牎楠�
+ if (IfValueNeedSign(item.Value.ToString()))
{
//濡傛灉鏄痓ool绫诲瀷锛岃杞皬鍐�
if (item.Value is bool)
@@ -504,7 +623,8 @@
//2.4 MD5杞崲+杞皬鍐�
var signstr = SignMD5Encrypt(str);
paramDictionary.Add("sign", signstr);
- return Newtonsoft.Json.JsonConvert.SerializeObject(paramDictionary);
+ var signResult = Newtonsoft.Json.JsonConvert.SerializeObject(paramDictionary);
+ return signResult;
}
else
{
@@ -517,6 +637,7 @@
}
}
+ #endregion
}
/// <summary>
@@ -540,6 +661,11 @@
/// </summary>
public string message;
+ /// <summary>
+ /// 杩欎釜鏄姹傞敊璇椂鐨勬墿灞曟暟鎹�,浠ュ悗鎵�鏈夌殑闄勫甫鎵╁睍鏁版嵁閮戒細鏀惧湪杩欓噷闈㈠姩鎬佺淮鎶�
+ /// </summary>
+ public object extra;
+
///// <summary>
///// isSuccess
///// </summary>
@@ -552,7 +678,5 @@
}
-
-
}
--
Gitblit v1.8.0