/// <summary> /// 调用数据中心接口(用于上传文件) /// </summary> /// <param name="userName"></param> /// <param name="signName"></param> /// <param name="functionName"></param> /// <param name="parasObj"></param> /// <param name="data"></param> /// <param name="appList"></param> /// <returns></returns> public static DataCenterResult PostDataCenter(string userName, string signName, string functionName, object parasObj, byte[] data, List <Apps> appList) { string appPwd = ""; string appKey = ""; string apiUrl = ""; FxtApiCommon.GetNowApiInfo(Common.appId, appList, out apiUrl, out appPwd, out appKey); //apiUrl = "http://192.168.1.104:8100/dc/active"; string nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); string sinfo = JsonHelp.ToJSONjss(new { functionname = functionName, appid = Common.appId, apppwd = appPwd, signname = signName, time = nowTime, code = Common.GetCode(signName, nowTime, functionName, appList) }); string info = JsonHelp.ToJSONjss(new { uinfo = new { username = userName, token = "" }, appinfo = new { splatype = "win", platVer = "2007", stype = "",//验证 version = "4.26", vcode = "1", systypecode = Common.systypeCode.ToString(), //验证 channel = "360" }, funinfo = parasObj }); string url = apiUrl + "/upload"; url = url + "?sinfo=" + sinfo.EncodeField() + "&info=" + info.EncodeField(); HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url); webrequest.ContentType = "application/octet-stream"; webrequest.Method = "POST"; Stream requestStream = webrequest.GetRequestStream(); byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n–—————————7d930d1a850658–\r\n"); requestStream.Write(data, 0, data.Length); // 输入尾部数据 requestStream.Write(boundaryBytes, 0, boundaryBytes.Length); WebResponse responce = webrequest.GetResponse(); Stream s = responce.GetResponseStream(); StreamReader sr = new StreamReader(s); // 返回数据流(源码) string str = sr.ReadToEnd(); DataCenterResult result = Common.GetDataCenterResult(str); return(result); }
/// <summary> /// 用于功能机密 /// </summary> /// <param name="signname"></param> /// <param name="time"></param> /// <param name="functionname"></param> /// <param name="appList">当前拥有拥有的appList</param> /// <returns></returns> public static string GetCode(string signname, string time, string functionname, List <UserCenter_Apps> appList) { string appPwd = ""; string appKey = ""; string appUrl = ""; FxtApiCommon.GetNowApiInfo(Common.appId, appList, out appUrl, out appPwd, out appKey); string[] pwdArray = { Common.appId.ToString(), appPwd, signname, time, functionname }; string code = EncryptHelper.GetMd5(pwdArray, appKey); return(code); }
/// <summary> /// 调用数据中心接口 /// </summary> /// <param name="userName"></param> /// <param name="signName"></param> /// <param name="functionName"></param> /// <param name="parasObj"></param> /// <returns></returns> public static DataCenterResult PostDataCenter(string userName, string signName, string functionName, object parasObj, List <Apps> appList) { try { string appPwd = ""; string appKey = ""; string apiUrl = ""; FxtApiCommon.GetNowApiInfo(Common.appId, appList, out apiUrl, out appPwd, out appKey); apiUrl = "http://localhost:40455/dc/active"; string nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); var para = new { sinfo = JsonHelp.ToJSONjss(new { functionname = functionName, appid = Common.appId, apppwd = appPwd, signname = signName, time = nowTime, code = Common.GetCode(signName, nowTime, functionName, appList) }), info = JsonHelp.ToJSONjss(new { uinfo = new { username = userName, token = "" }, appinfo = new { splatype = "win", platVer = "2007", stype = "",//验证 version = "4.26", vcode = "1", systypecode = Common.systypeCode.ToString(),//验证 channel = "360" }, funinfo = parasObj }) }; HttpClient client = new HttpClient(); //client.BaseAddress = new Uri(apiUrl); client.Timeout = new TimeSpan(0, 10, 0); HttpResponseMessage hrm = client.PostAsJsonAsync(new Uri(apiUrl), para).Result; string str = hrm.Content.ReadAsStringAsync().Result; DataCenterResult result = Common.GetDataCenterResult(str); return(result); } catch (AggregateException ex) { throw ex; } }
/// <summary> /// 调用用户中心接口 /// </summary> /// <param name="userName"></param> /// <param name="signName"></param> /// <param name="functionName"></param> /// <param name="parasObj"></param> /// <param name="appList">当前用户所拥有的api信息集合</param> /// <returns></returns> public static DataCenterResult PostUserCenter(string userName, string signName, string functionName, object parasObj, List <UserCenter_Apps> appList) { string appPwd = ""; string appKey = ""; string apiUrl = ""; FxtApiCommon.GetNowApiInfo(Common.appId, appList, out apiUrl, out appPwd, out appKey); string nowTime = DateTime.Now.ToString("yyyyMMddHHmmss"); var para = new { sinfo = JsonHelp.ToJSONjss(new { functionname = functionName, appid = Common.appId, apppwd = appPwd, signname = signName, time = nowTime, code = Common.GetCode(signName, nowTime, functionName, appList) }), info = JsonHelp.ToJSONjss(new { uinfo = new { username = userName, token = "" }, appinfo = new { splatype = "win", platVer = "2007", stype = "",//验证 version = "4.26", vcode = "1", systypecode = Common.systypeCode.ToString(),//验证 channel = "360" }, funinfo = parasObj }) }; HttpClient client = new HttpClient(); //apiUrl = "http://192.168.1.104:8200/uc/active"; HttpResponseMessage hrm = client.PostAsJsonAsync(apiUrl, para).Result; string str = hrm.Content.ReadAsStringAsync().Result; DataCenterResult result = Common.GetDataCenterResult(str); return(result); }