using System; using System.Collections.Generic; using System.IO; using System.Net; using HDL_ON.DAL.Server; using HDL_ON.UI.UI2.PersonalCenter.PirDevice; using Newtonsoft.Json.Linq; using Shared; namespace HDL_ON.UI.UI2.FuntionControlView.Video { public class VideoSend { /// /// 检查住宅是否绑定丰林,并获取门口机列表 /// /// public static ResponsePackNew GetVideo() { var jObject = new JObject { { "homeId", PirSend.HomeId } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_Check); return responsePackNew; } /// /// 获取通话记录 /// /// public static ResponsePackNew GetCall() { var jObject = new JObject { { "homeId", PirSend.HomeId }, { "pageSize", int.MaxValue } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_GetCallList); return responsePackNew; } /// /// 获取门口机列表(1室内机,2室外机,3围墙机,4管理机,5二次确认机) /// public static List GetVideoInfoList(VideoClouds video) { List eSVideoInfosList = new List(); var jobject = new JObject(); jobject.Add("cmtID", video.flCmtId); jobject.Add("unitno", video.flBuildingId); jobject.Add("method", "getUUIDList"); try { var str = HttpWebRequest(NewAPI.API_POST_FL_List, jobject.ToString(), "POST"); if (string.IsNullOrEmpty(str)) { return eSVideoInfosList; } var json = JObject.Parse(str); if (json == null) { return eSVideoInfosList; } if (json["resCode"].ToString() != "0") { return eSVideoInfosList; } eSVideoInfosList = Newtonsoft.Json.JsonConvert.DeserializeObject>(json["list"].ToString()); } catch { } return eSVideoInfosList; } /// /// 获取可视对讲设备列表 /// /// public static ResponsePackNew GetVideoInfoList() { var jobject = new JObject(); jobject.Add("homeId", PirSend.HomeId);//1382596006055460866 var requestJson = HttpUtil.GetSignRequestJson(jobject);//数据签名 // 获取可视对讲设备列表 var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDeviceList, requestJson); return revertObj; } /// /// 上报动态开锁密码(注意:密码有可能延时1分钟生效) /// public static void GetQRcode(FrameLayout frame, Video video, Action action) { ///标记是否成功 bool if_bool = false; //临时密码 string pwd = VideoMethod.GetCode(); var jobject = new JObject(); jobject.Add("communityID", video.flRoomBindVO.flCmtId);//社区ID jobject.Add("fromTime", VideoMethod.GetCurrentTimeStamp());//开始时间 jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//有效时间 jobject.Add("unitno", video.flRoomBindVO.flBuildingId);//单元号 jobject.Add("roomno", video.flRoomBindVO.flRoomId);//房间号 jobject.Add("code", pwd); jobject.Add("userKey", video.flRoomBindVO.id); jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp()); jobject.Add("secretKey", video.flRoomBindVO.flSecretKey); jobject.Add("method", "setdynamicpwd"); jobject.Add("numTimes", "5"); //加载log Loading loading = new Loading(); frame.AddChidren(loading); loading.Start(); new System.Threading.Thread(() => { try { var str = HttpWebRequest(NewAPI.API_POST_FL_QRcode, jobject.ToString(), "POST"); if (!string.IsNullOrEmpty(str)) { var json = JObject.Parse(str); if (json != null) { var stateCode = json["status"].ToString(); if (stateCode == "0") { if_bool = true; } } } } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); action(if_bool, pwd); }); } }) { IsBackground = true }.Start(); } /// /// 下载图片 /// public static void GetIcon(FrameLayout frame,string url) { Loading loading = new Loading(); frame.AddChidren(loading); loading.Start(); new System.Threading.Thread(() => { try { var responsePackNew = RequestServerhomeId(null, url); } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); }); } }) { IsBackground = true }.Start(); } /// /// 请求服务器的方法(支持请求方式为POST/GET) /// /// 请求的地址 /// 请求数据 /// 请求方式为POST/GET /// 超时时间 /// public static string HttpWebRequest(string getUrl, string str, string method, int second = 3) { try { HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //创建请求 request.Method = method; //请求方式为POST/GET request.ContentType = "application/json"; request.Timeout = second * 1000;//超时时间 if (method == "POST") { byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); request.ContentLength = jsonbyte.Length; Stream postStream = request.GetRequestStream(); postStream.Write(jsonbyte, 0, jsonbyte.Length); postStream.Close(); } //发送请求并获取相应回应数据 HttpWebResponse res; try { res = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { res = (HttpWebResponse)ex.Response; } StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); string content = sr.ReadToEnd(); //获得响应字符串 return content; } catch { return null; } } /// ///请求服务器(与住宅有关:例如;homeId) /// /// public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 20) { var requestJson = HttpUtil.GetSignRequestJson(o); return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); } } class FlResponsePackNew {// public string status = string.Empty; public string desc = string.Empty; } }