JLChen
2021-01-05 f500e14c0a994487070380c50c85e0929cbc8e63
Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
@@ -10,7 +10,7 @@
// </summary>
//using SystemConfiguration;
namespace Shared.SimpleControl
{
{
    /// <summary>
    /// 主页面
    /// </summary>
@@ -38,7 +38,7 @@
        //public static Button LogoButton = new Button ();
  
        public static string RequestVersion = "2.507171";
        public static string RequestVersion = "2.512151";
        public static UserInfo LoginUser;
        /// <summary>
        /// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token)
@@ -80,6 +80,17 @@
        //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 {
@@ -146,6 +157,9 @@
                    Loading.TextColor = 0xFFA9A9A9;
                    Loading.LodingBackgroundColor = SkinStyle.Current.MainColor;
                }
                CommonUtlis.Current.CheckIfJailBreak ();
            } catch (Exception ex) {
                //new Alert ("Eorr", ex.Message, "Close").Show();
            }
@@ -295,26 +309,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);
@@ -323,9 +331,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可以不用传入 */
                //    //对应微信网址
@@ -483,6 +489,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;
@@ -596,6 +674,7 @@
            });
        }
    }
}