From 404cdc88627f942df7944af04ee05b9d527752d6 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 30 九月 2019 13:22:40 +0800 Subject: [PATCH] 合并了徐梅的按键面板绑定 --- ZigbeeApp/Shared/Common/CommonPage.cs | 88 ++++++++++++++++++++++++++++++-------------- 1 files changed, 60 insertions(+), 28 deletions(-) diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs old mode 100644 new mode 100755 index 06afe41..bf1c822 --- a/ZigbeeApp/Shared/Common/CommonPage.cs +++ b/ZigbeeApp/Shared/Common/CommonPage.cs @@ -57,7 +57,7 @@ /// <summary> /// 鐗堟湰鍙� /// </summary> - public static string CodeIDString = "1.0.19071001"; + public static string CodeIDString = "1.0.19071501"; /// <summary> /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee) /// </summary> @@ -215,9 +215,9 @@ public async System.Threading.Tasks.Task<string> RequestHttpsZigbeeResultAsync(string requestUrl, byte[] byteData) { var result = await RequestHttpsZigbeeBytesResultAsync(requestUrl, byteData); - if (result != null) - { - return Encoding.UTF8.GetString(result); + if (result != null) + { + return Encoding.UTF8.GetString(result); } return null; } @@ -228,39 +228,73 @@ /// </summary> /// <param name="requestUrl">璇锋眰Url</param> /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> + /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param> /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> - public async System.Threading.Tasks.Task<byte[]> RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData) + public async System.Threading.Tasks.Task<byte[]> RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData, string requestMethod = "POST") { + //璇锋眰Url鐨勫畬鎴愯矾寰� + var fullUrl = $"{RequestHttpsHost}/{requestUrl}"; + return await this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.Token, requestMethod); + } + + /// <summary> + /// <pra>璇锋眰鏈嶅姟鍣ㄦ柟娉�,鎸囧畾涓�涓猆rl,鍜岃姹傛柟娉曪紝鏁版嵁锛孋ookie锛屽緱鍒板搷搴旂殑鏁版嵁</pra> + /// <pra>娉ㄦ剰!!姝ゆ柟娉曚粎闄愩�愭嫢鏈夌鐞嗗憳鏉冮檺鐨勬垚鍛樸�戣皟鐢�</pra> + /// </summary> + /// <param name="requestUrl">璇锋眰Url</param> + /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> + /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param> + /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> + public async System.Threading.Tasks.Task<byte[]> RequestZigbeeHttpsByAdmin(string requestUrl, byte[] byteData, string requestMethod = "POST") + { + //璇锋眰Url鐨勫畬鎴愯矾寰� + var fullUrl = $"{Config.Instance.AdminRequestBaseUrl}/{requestUrl}"; + return await this.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.AdminRequestToken, requestMethod); + } + + /// <summary> + /// 璇锋眰鏈嶅姟鍣ㄦ柟娉� + /// 鎸囧畾涓�涓猆rl,鍜岃姹傛柟娉曪紝鏁版嵁锛孋ookie锛屽緱鍒板搷搴旂殑鏁版嵁 + /// </summary> + /// <param name="requestFullUrl">璇锋眰Url鐨勫畬鎴愯矾寰�</param> + /// <param name="byteData">璇锋眰鐨勭殑鏁版嵁</param> + /// <param name="token">token</param> + /// <param name="requestMethod">POST 鎴栬�� GET 绛夌瓑</param> + /// <returns>寰楀埌鍝嶅簲鐨勬暟鎹�</returns> + private async System.Threading.Tasks.Task<byte[]> DoRequestZigbeeHttpsInterface(string requestFullUrl, byte[] byteData, string token, string requestMethod = "POST") + { try { //鍒濆鍖栨柊鐨剋ebRequst //1锛� 鍒涘缓httpWebRequest瀵硅薄 - HttpWebRequest webRequest = null; - if (Config.Instance.isAdministrator == true) - { - webRequest = (HttpWebRequest)WebRequest.Create(new Uri($"{Config.Instance.AdminRequestBaseUrl}/{requestUrl}")); - } - else - { - webRequest = (HttpWebRequest)WebRequest.Create(new Uri($"{RequestHttpsHost}/{requestUrl}")); - } + HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(requestFullUrl)); + //2锛� 鍒濆鍖朒ttpWebRequest瀵硅薄 - webRequest.Method = "POST"; - webRequest.ContentType = "application/json"; - webRequest.Timeout = 10*1000; - webRequest.ContentLength = byteData.Length; - webRequest.Timeout = 10*1000; - webRequest.Headers.Add(HttpRequestHeader.Authorization, Config.Instance.Token); - //3锛� 闄勫姞瑕丳OST缁欐湇鍔″櫒鐨勬暟鎹埌HttpWebRequest瀵硅薄(闄勫姞POST鏁版嵁鐨勮繃绋嬫瘮杈冪壒娈婏紝瀹冨苟娌℃湁鎻愪緵涓�涓睘鎬х粰鐢ㄦ埛瀛樺彇锛岄渶瑕佸啓鍏ttpWebRequest瀵硅薄鎻愪緵鐨勪竴涓猻tream閲岄潰銆�) - var newStream = webRequest.GetRequestStream();//鍒涘缓涓�涓猄tream,璧嬪�兼槸鍐欏叆HttpWebRequest瀵硅薄鎻愪緵鐨勪竴涓猻tream閲岄潰 - newStream.Write(byteData, 0, byteData.Length); - newStream.Flush(); - newStream.Close(); + webRequest.Method = requestMethod; + webRequest.Timeout = 10 * 1000; + webRequest.Headers.Add(HttpRequestHeader.Authorization, token); + if (requestMethod == "GET") + { + //webRequest.ContentType = "text/html"; + webRequest.ContentType = "application/json"; + } + else + { + webRequest.ContentType = "application/json"; + webRequest.ContentLength = byteData.Length; + + //3锛� 闄勫姞瑕丳OST缁欐湇鍔″櫒鐨勬暟鎹埌HttpWebRequest瀵硅薄(闄勫姞POST鏁版嵁鐨勮繃绋嬫瘮杈冪壒娈婏紝瀹冨苟娌℃湁鎻愪緵涓�涓睘鎬х粰鐢ㄦ埛瀛樺彇锛岄渶瑕佸啓鍏ttpWebRequest瀵硅薄鎻愪緵鐨勪竴涓猻tream閲岄潰銆�) + var newStream = webRequest.GetRequestStream();//鍒涘缓涓�涓猄tream,璧嬪�兼槸鍐欏叆HttpWebRequest瀵硅薄鎻愪緵鐨勪竴涓猻tream閲岄潰 + newStream.Write(byteData, 0, byteData.Length); + newStream.Flush(); + newStream.Close(); + } + //4锛� 璇诲彇鏈嶅姟鍣ㄧ殑杩斿洖淇℃伅 var response = (HttpWebResponse)webRequest.GetResponse(); using (var stream = response.GetResponseStream()) { - if(stream==null) + if (stream == null) { return null; } @@ -281,8 +315,6 @@ return null; } } - - #if iOS /// <summary> /// 鑾峰彇iOS-APP鐗堟湰淇℃伅 -- Gitblit v1.8.0