JLChen
2021-01-11 5a5a2b696866f947b6025d26c3302e8ffef46435
Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
@@ -38,7 +38,7 @@
        //public static Button LogoButton = new Button ();
  
        public static string RequestVersion = "2.510271";
        public static string RequestVersion = "2.601071";
        public static UserInfo LoginUser;
        /// <summary>
        /// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token)
@@ -76,10 +76,21 @@
        public static string RequestHttpsHost = "https://smarth-api.havells.com/HangZhouHdlCloudApi";
        //public static string RequestHttpsHost = "https://global.hdlcontrol.com/HangZhouHdlCloudApi";
        public static string RequestHttpsHostMqtt = "https://smarth-api.havells.com";
        //public static string RequestHttpsHostMqtt = "https://smarth-api.havells.com";
        //public static string RequestHttpsHost = "https://developer.hdlcontrol.com";
        #region GetDesignHeight
        /// <summary>
        /// 获取view的计算高度,ON软件为了适配全面特殊使用的比例方法,由于一些背景图片是直接全部填充的,改动成三层的(view-button-button)的工作量很大,不禁需要增加一个view,还需要修改图片
        /// </summary>
        /// <returns>The view height.</returns>
        public static int GetDesignHeight (int height)
        {
            int ss = Convert.ToInt32 (height / PixelScale);
            return Application.GetRealHeight (ss);
        }
        #endregion
        public static double PixelScale {
            get {
@@ -128,6 +139,9 @@
                    Application.DesignWidth = 640;
                    Application.DesignHeight = 1136;
                }
                //印度客户定制APP默认使用英文
                Language.CurrentLanguage = "English";
                Shared.BusSocket.Start (6000);
                CommonPage.InitReceiveEvent ();
@@ -298,26 +312,20 @@
            ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => {
                return true;
            };
            #region HttpWebRequest
            try {
                if (urlHead == "") {
                    urlHead = RequestHttpsHost;
                }
                string requestFullUrl = urlHead + methodType;
                //初始化新的webRequst
                //1. 创建httpWebRequest对象
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (new Uri (requestFullUrl));
                //2. 初始化HttpWebRequest对象
                webRequest.Method = requestMethod;
                //webRequest.Timeout = mTimeout * 1000;
                webRequest.Headers.Add (HttpRequestHeader.Authorization, LoginUser.LoginTokenString);
                webRequest.Headers.Add ("RequestVersion", mUploadHomeAppGatewaySubFilesBigObj.RequestVersion);
                webRequest.Headers.Add ("LoginAccessToken", LoginUser.LoginTokenString);
@@ -326,9 +334,7 @@
                webRequest.Headers.Add ("FileName", mUploadHomeAppGatewaySubFilesBigObj.FileName);
                webRequest.Headers.Add ("IsOtherAccountCtrl", mUploadHomeAppGatewaySubFilesBigObj.IsOtherAccountCtrl.ToString ());
                //var byteData = new byte [] { };//Encoding.UTF8.GetBytes (dataStringJson);
                //if (LoginUser != null) {/* 如果不需要验证Token可以不用传入 */
                //    //对应微信网址
@@ -486,6 +492,78 @@
        }
        public const int TIME_OUT_20 = 30;
        /// <summary>
        /// 下载文件方法
        /// </summary>
        /// <param name="methodType"></param>
        /// <param name="dataStringJson"></param>
        /// <param name="urlHead"></param>
        /// <param name="mTimeout"></param>
        /// <param name="requestMethod"></param>
        /// <returns></returns>
        public static byte [] RequestHttpsReturnByteNew (string methodType, string dataStringJson, string urlHead = "", int mTimeout = 20, string requestMethod = "POST")
        {
            try {
                #region
                if (urlHead == "") {
                    urlHead = RequestHttpsHost;
                }
                string requestFullUrl = urlHead + methodType;
                //初始化新的webRequst
                //1. 创建httpWebRequest对象
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (new Uri (requestFullUrl));
                //2. 初始化HttpWebRequest对象
                webRequest.Method = requestMethod;
                //webRequest.Timeout = timeout * 1000;
                //取消使用代理访问
                webRequest.Proxy = null;
                webRequest.UseDefaultCredentials = false;
                if (requestMethod == "GET") {
                    webRequest.ContentType = "application/json";
                } else {
                    var byteData = Encoding.UTF8.GetBytes (dataStringJson);
                    webRequest.ContentType = "application/json";
                    webRequest.ContentLength = byteData.Length;
                    //3. 附加要POST给服务器的数据到HttpWebRequest对象(附加POST数据的过程比较特殊,它并没有提供一个属性给用户存取,需要写入HttpWebRequest对象提供的一个stream里面。)
                    var newStream = webRequest.GetRequestStream ();//创建一个Stream,赋值是写入HttpWebRequest对象提供的一个stream里面
                    newStream.Write (byteData, 0, byteData.Length);
                    newStream.Flush ();
                    newStream.Close ();
                }
                //4. 读取服务器的返回信息
                var response = (HttpWebResponse)webRequest.GetResponse ();
                using (var stream = response.GetResponseStream ()) {
                    if (stream == null) {
                        return null;
                    }
                    var ms = new MemoryStream ();
                    var bytes = new byte [1024];
                    var len = int.MaxValue;
                    while (stream.CanRead && 0 < len) {
                        len = stream.Read (bytes, 0, bytes.Length);
                        ms.Write (bytes, 0, len);
                    }
                    return ms.ToArray ();
                }
                #endregion
            } catch (WebException e) {
                //if (e.Status == WebExceptionStatus.ConnectFailure//由有网络切换到无网络时触发
                //    || e.Status == WebExceptionStatus.Timeout//超时
                //    || e.Status == WebExceptionStatus.NameResolutionFailure)//本身就是无网络时启动时触发
                //{
                //    //Phone.UserCenter.HdlWifiLogic.Current.CanAccessHttp = false;
                //}
                return null;
            } catch (Exception e) {
                return null;
            }
        }
        #region LoadingTipMsg 远程连接Tip
        static Button btnLoadingTipMsg;
@@ -552,7 +630,7 @@
            //    new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToServer),
            //               Language.StringByID (R.MyInternationalizationString.Close)).Show ();
            //});
            ShowAlertOnMainThread (Language.StringByID (R.MyInternationalizationString.FailureToServer));
            ShowAlertOnMainThread (ErrorCode.FailedRequestServer);
        }
        /// <summary>
@@ -599,6 +677,7 @@
            });
        }
    }
}