| | |
| | | //public static Button LogoButton = new Button (); |
| | | |
| | | |
| | | public static string RequestVersion = "2.601071"; |
| | | public static string RequestVersion = "2.701111"; |
| | | public static UserInfo LoginUser; |
| | | /// <summary> |
| | | /// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token) |
| | |
| | | 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://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"; |
| | | |
| | | #region GetDesignHeight |
| | | /// <summary> |
| | |
| | | } |
| | | //印度客户定制APP默认使用英文 |
| | | Language.CurrentLanguage = "English"; |
| | | |
| | | |
| | | Shared.BusSocket.Start (6000); |
| | | CommonPage.InitReceiveEvent (); |
| | |
| | | }); |
| | | } |
| | | |
| | | static DateTime requesTime = DateTime.MinValue; |
| | | static bool isShowLoading = true; |
| | | ///// <summary> |
| | | ///// 请求服务器方法 |
| | | ///// </summary> |
| | | ///// <returns>The https.</returns> |
| | | ///// <param name="methodType">请求方法.</param> |
| | | ///// <param name="dataStringJson">请求的参数.</param> |
| | | ///// <param name="needHeaders">是否需要包头.</param> |
| | | //public static ResponsePack RequestHttpsOld (string methodType, string dataStringJson, string urlHead = "") |
| | | //{ |
| | | // ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => { |
| | | // return true; |
| | | // }; |
| | | |
| | | // #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 (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) { |
| | | // //Application.RunOnMainThread (() => { |
| | | // // MainPage.Loading.Hide (); |
| | | // //}); |
| | | // return new ResponsePack () { StateCode = ErrorCode.NetworkError }; |
| | | // } |
| | | // string responseString = Encoding.UTF8.GetString (bytes); |
| | | |
| | | // try { |
| | | // return Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (responseString); |
| | | // } catch (Exception ex) { |
| | | // Utlis.WriteLine (ex.ToString ()); |
| | | // return new ResponsePack () { StateCode = "Data exception" }; |
| | | // } |
| | | // #endregion |
| | | |
| | | //} |
| | | |
| | | ///// <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, string urlHead = "") |
| | | //{ |
| | | // ResponsePack revertObj = null; |
| | | // try { |
| | | |
| | | // ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) => { |
| | | // return true; |
| | | // }; |
| | | |
| | | // #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) { |
| | | // Utlis.WriteLine (ex.Message); |
| | | // return null; |
| | | // } finally { |
| | | // //requesTime = requesTime.AddDays(1); |
| | | // } |
| | | //} |
| | | |
| | | |
| | | /// <summary> |
| | | /// 请求服务器方法 |
| | | /// </summary> |
| | | /// <returns>The https.</returns> |
| | | /// <param name="methodType">请求方法.</param> |
| | | public static ResponsePack RequestHttpsNewBig (string methodType, byte [] byteData, UploadHomeAppGatewaySubFilesBigObj mUploadHomeAppGatewaySubFilesBigObj, string urlHead = "", int mTimeout = 10, string requestMethod = "POST") |
| | | { |
| | | 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); |
| | | webRequest.Headers.Add ("HomeId", mUploadHomeAppGatewaySubFilesBigObj.HomeId); |
| | | webRequest.Headers.Add ("BackupClassId", mUploadHomeAppGatewaySubFilesBigObj.BackupClassId); |
| | | 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可以不用传入 */ |
| | | // //对应微信网址 |
| | | |
| | | //} |
| | | |
| | | if (requestMethod == "GET") { |
| | | //webRequest.ContentType = "text/html"; |
| | | webRequest.ContentType = "application/json"; |
| | | } else { |
| | | webRequest.ContentType = "application/octet-stream"; |
| | | //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 new ResponsePack () { StateCode = ErrorCode.NetworkError }; |
| | | } |
| | | 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); |
| | | } |
| | | //var backBytes = ms.ToArray (); |
| | | string responseString = Encoding.UTF8.GetString (ms.ToArray ()); |
| | | |
| | | try { |
| | | ResponsePack revertObj = new ResponsePack () { }; |
| | | revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (responseString); |
| | | if (revertObj.StateCode == null) { |
| | | revertObj.StateCode = "Data Exception"; |
| | | } |
| | | return revertObj; |
| | | } catch (Exception ex) { |
| | | Shared.Utlis.WriteLine (ex.ToString ()); |
| | | return new ResponsePack () { StateCode = "Data Exception" }; |
| | | } |
| | | |
| | | //return ms.ToArray (); |
| | | } |
| | | } catch (Exception ex) { |
| | | #if DEBUG |
| | | System.Console.WriteLine (ex.Message); |
| | | #endif |
| | | //The operation has timed out |
| | | return new ResponsePack () { StateCode = ErrorCode.NetworkError }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 请求服务器方法 |
| | | /// 2020-06-22 带自定义请求超时 时间方法 |
| | | /// </summary> |
| | | /// <returns>The https.</returns> |
| | | /// <param name="methodType">请求方法.</param> |
| | | /// <param name="dataStringJson">请求的参数.</param> |
| | | /// <param name="needHeaders">是否需要包头.</param> |
| | | public static ResponsePack RequestHttps (string methodType, string dataStringJson, string urlHead = "", int mTimeout = 10, string requestMethod = "POST") |
| | | { |
| | | 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; |
| | | |
| | | var byteData = Encoding.UTF8.GetBytes (dataStringJson); |
| | | |
| | | if (LoginUser != null) {/* 如果不需要验证Token可以不用传入 */ |
| | | //对应微信网址 |
| | | webRequest.Headers.Add (HttpRequestHeader.Authorization, LoginUser.LoginTokenString); |
| | | } |
| | | if (requestMethod == "GET") { |
| | | //webRequest.ContentType = "text/html"; |
| | | webRequest.ContentType = "application/json"; |
| | | } else { |
| | | 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 new ResponsePack () { StateCode = ErrorCode.NetworkError }; |
| | | } |
| | | 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); |
| | | } |
| | | //var backBytes = ms.ToArray (); |
| | | string responseString = Encoding.UTF8.GetString (ms.ToArray ()); |
| | | |
| | | try { |
| | | ResponsePack revertObj = new ResponsePack () { }; |
| | | revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (responseString); |
| | | if (revertObj.StateCode == null) { |
| | | revertObj.StateCode = "Data Exception"; |
| | | } |
| | | return revertObj; |
| | | } catch (Exception ex) { |
| | | Shared.Utlis.WriteLine (ex.ToString ()); |
| | | return new ResponsePack () { StateCode = "Data Exception" }; |
| | | } |
| | | |
| | | //return ms.ToArray (); |
| | | } |
| | | } catch (Exception ex) { |
| | | #if DEBUG |
| | | System.Console.WriteLine (ex.Message); |
| | | #endif |
| | | //The operation has timed out |
| | | return new ResponsePack () { StateCode = ErrorCode.NetworkError }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | 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 |
| | | |