陈嘉乐
2020-01-08 bbc74a6dae2e90a811b2507c5896fe89aa29ccc0
Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
@@ -39,19 +39,28 @@
        //public static Button LogoButton = new Button ();
        public static string CodeIDString = "20191223";
        public static string RequestVersion = "20200108";
        public static UserInfo LoginUser;
        /// <summary>
        /// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token)
        /// </summary>
        public static bool IsAdministrator = false;
        public static string SoftPadTitle = "Crabtree";
        public static string SoftTitle = "Crabtree";
        public static int SoftSmsType = 0;
        public static string RequestSource = "1"; //0:Zigbee、1:HdlOn、2:GraphicsMonitor、3:BusproSoft、4:AgentWeb
        public static string LogoString = "";//"Logo/Logo.png";
        public static string WiFiStatus = "CrabtreeAdd/WiFi.png";//"CrabtreeAdd/WiFi.png";
        public static string RegisterLogoString = "Logo/Register_logo.png";
        public static string SeviceIP = "52.172.25.151";
        //public static string RequestHttpsHost = "https://homeautomation.havells.com";
        public static string RequestHttpsHost = "https://developer.hdlcontrol.com";
        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 RequestHttpsHost = "https://developer.hdlcontrol.com";
        public static double PixelScale {
@@ -165,7 +174,7 @@
        /// <param name="methodType">请求方法.</param>
        /// <param name="dataStringJson">请求的参数.</param>
        /// <param name="needHeaders">是否需要包头.</param>
        public static ResponsePack RequestHttps (string methodType, string dataStringJson, bool needHeaders = true, bool needTip = true,string urlHead = "")
        public static ResponsePack RequestHttps (string methodType, string dataStringJson, bool needHeaders = false, bool needTip2 = true, string urlHead = "")
        {
            ResponsePack revertObj = null;
            try {
@@ -194,11 +203,12 @@
                #region
                var webClient = new WebClient ();
                if (urlHead == "") {
                    urlHead = $"{RequestHttpsHost}/WebApi/";
                    urlHead = "https://developer.hdlcontrol.com/api/";
                } else {
                    webClient.Headers.Add ("CONTENT-TYPE", "application/json");
                    urlHead = RequestHttpsHost;
                }
                //else {
                //    webClient.Headers.Add ("CONTENT-TYPE", "application/json");
                //}
                webClient.Headers.Add ("CONTENT-TYPE", "application/json");
                string url = urlHead + methodType;
                if (needHeaders && LoginUser != null) {/* 如果不需要验证Token可以不用传入 */
                    webClient.Headers.Add ("Authorization", LoginUser.LoginTokenString);
@@ -209,7 +219,7 @@
                } catch (System.Net.WebException webEx) {
                    Application.RunOnMainThread (() => {
                        MainPage.Loading.Hide ();
                        revertObj = new ResponsePack () { StateCode = "Network_Error" };
                        revertObj = new ResponsePack () { StateCode = ErrorCode.NetworkError };
                        //new Alert ( "","Network abnormal, unable to connect to the Internet", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        return;
                    });
@@ -217,6 +227,7 @@
                string responseString = null;
                if (bytes != null) {
                    responseString = Encoding.UTF8.GetString (bytes);
                    //var DD = Newtonsoft.Json.Linq.JObject .Parse("GFGFDG");DD["ResponseData"]["PageData"]
                }
                //var request = (HttpWebRequest)WebRequest.Create (url);
@@ -235,28 +246,31 @@
                if (responseString != null) {
                    try {
                        revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (responseString);
                        if (revertObj.StateCode != "SUCCESS") {
                            if (methodType == "IsExistingAccount") {
                        //if (revertObj.StateCode.ToUpper()  != "SUCCESS") {
                        //    if (methodType == API.IsExistingAccount) {
                            } else if (needTip) {
                                Application.RunOnMainThread (() => {
                                    new Alert ("", revertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                });
                            }
                        }
                        //    } else if (needTip) {
                        //        Application.RunOnMainThread (() => {
                        //            new Alert ("", revertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        //        });
                        //    }
                        //}
                    } catch (Exception ex) {
                        Console.WriteLine (ex.ToString ());
                        revertObj = new ResponsePack () { StateCode = "Data exception" };
                    }
                } else {
                    if (methodType == "Login" && needTip) {
                        Application.RunOnMainThread (() => {
                            new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToDataBase),
                                       Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                        });
                    } else {
                        if (needTip)
                            FailureToServer ();
                    }
                else {
                    revertObj = new ResponsePack () { StateCode = ErrorCode.NetworkError };
                    //if (methodType == API.Login && needTip) {
                    //    Application.RunOnMainThread (() => {
                    //        new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToDataBase),
                    //                   Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                    //    });
                    //} else {
                    //    if (needTip)
                    //        FailureToServer ();
                    //}
                }
                return revertObj;
                #endregion
@@ -267,6 +281,59 @@
                //requesTime = requesTime.AddDays(1);
            }
        }
        /// <summary>
        /// 请求服务器方法
        /// </summary>
        /// <returns>The https.</returns>
        /// <param name="methodType">请求方法.</param>
        /// <param name="dataStringJson">请求的参数.</param>
        /// <param name="needHeaders">是否需要包头.</param>
        public static byte [] RequestHttpsReturnByte (string methodType, string dataStringJson, bool needHeaders = false, bool needTip2 = true, string urlHead = "")
        {
            ResponsePack revertObj = null;
            try {
                if (!SystemRemote.checeInternet ()) {
                    Application.RunOnMainThread (() => {
                        MainPage.WiFiStatus = "CrabtreeAdd/WiFiUnlink.png";
                        MainPage.Loading.Hide ();
                    });
                }
                #region
                var webClient = new WebClient ();
                if (urlHead == "") {
                    urlHead = RequestHttpsHost;
                }
                //else {
                //    webClient.Headers.Add ("CONTENT-TYPE", "application/json");
                //}
                webClient.Headers.Add ("CONTENT-TYPE", "application/json");
                string url = urlHead + methodType;
                if (needHeaders && LoginUser != null) {/* 如果不需要验证Token可以不用传入 */
                    webClient.Headers.Add ("Authorization", LoginUser.LoginTokenString);
                }
                byte [] bytes = null;
                try {
                    bytes = webClient.UploadData (url, Encoding.UTF8.GetBytes (dataStringJson));
                } catch (System.Net.WebException webEx) {
                    return bytes;
                }
                return bytes;
                #endregion
            } catch (Exception ex) {
                Console.WriteLine (ex.Message);
                return null;
            } finally {
                //requesTime = requesTime.AddDays(1);
            }
        }
        /// <summary>
        /// 连接服务器失败
        /// </summary>