public static void InitSystemSettings() { try { //ServiceLocator.SystemSettings = XMLUtil.XmlDeserialize<SystemSettingsInfo>( // ConfigureFile.GetXML(SystemFilePath.FilePathSystemSetting), // "SystemSettings"); string currentDirectory = System.IO.Directory.GetCurrentDirectory(); DirectoryInfo currentFolder = new DirectoryInfo(currentDirectory); FileInfo[] files = currentFolder.GetFiles(); if (files.Length > 0) { foreach (var file in files) { if (".xlsx".Equals(file.Extension, StringComparison.OrdinalIgnoreCase) || ".xls".Equals(file.Extension, StringComparison.OrdinalIgnoreCase)) { string message = ""; DataSet dataSet = ExcelToDataSet(file.FullName, out message); DataTable dataTable = dataSet.Tables[0]; string name = dataTable.Rows[2]["A"].ToString(); } } } } catch (Exception ex) { WXLog.Error("读取系统参数配置文件失败", ex); throw new Exception(ex.Message); } }
public WXLog GetWXLog(string strWhere) { StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT Top 1 * from Ecshop_WXLog "); if (!string.IsNullOrEmpty(strWhere)) { strSql.Append(" WHERE "); strSql.Append(strWhere); } WXLog log = new WXLog(); DbCommand sqlStringCommand = this.database.GetSqlStringCommand(strSql.ToString()); using (IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand)) { while (dataReader.Read()) { if (System.DBNull.Value != dataReader["Id"]) { log.Id = (int)dataReader["Id"]; } if (System.DBNull.Value != dataReader["AddTime"]) { log.AddTime = DateTime.Parse(dataReader["AddTime"].ToString()); } if (System.DBNull.Value != dataReader["UpdateTime"]) { log.UpdateTime = DateTime.Parse(dataReader["UpdateTime"].ToString()); } if (System.DBNull.Value != dataReader["StartTime"]) { log.StartTime = DateTime.Parse(dataReader["StartTime"].ToString()); } if (System.DBNull.Value != dataReader["EndTime"]) { log.EndTime = DateTime.Parse(dataReader["EndTime"].ToString()); } if (System.DBNull.Value != dataReader["Type"]) { log.Type = Convert.ToInt32(dataReader["Type"]); } if (System.DBNull.Value != dataReader["Remark"]) { log.Remark = dataReader["Remark"].ToString(); } else { log.Remark = ""; } if (System.DBNull.Value != dataReader["IsSuccess"]) { log.IsSuccess = (bool)dataReader["IsSuccess"]; } } } return(log); }
public bool UpdateLog(WXLog log) { DbCommand sqlStringCommand = this.database.GetSqlStringCommand("Update Ecshop_WXLog set [UpdateTime]=@UpdateTime,[Remark]=@Remark,[IsSuccess]=@IsSuccess Where Id=@Id"); this.database.AddInParameter(sqlStringCommand, "UpdateTime", DbType.DateTime, log.UpdateTime); this.database.AddInParameter(sqlStringCommand, "Remark", DbType.String, log.Remark); this.database.AddInParameter(sqlStringCommand, "IsSuccess", DbType.Boolean, log.IsSuccess); this.database.AddInParameter(sqlStringCommand, "Id", DbType.Int32, log.Id); return(this.database.ExecuteNonQuery(sqlStringCommand) > 0); }
/// <summary> /// POST方式请求 /// </summary> /// <param name="postdate"></param> /// <param name="url"></param> /// <returns></returns> public static string WebPost(string postdate, string url, int posTime = 10000) //在没有传参的情况下赋值默认值 { if (TokenInfo.TokenDateTime < DateTime.Now) { if (!GetToken()) { return("{\"Result\":\"FAILURE\",\"Message\":\"获取Token失败\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":\"false\"}"); } } WXLog.Info("开始发送数据" + postdate); return(WebService(postdate, url, posTime)); }
/// <summary> /// 获取请求的内容 /// </summary> /// <param name="request">请求</param> /// <returns>返回内容</returns> public static string GetRequestContent(HttpRequest request) { string content = string.Empty; byte[] bytes = request.BinaryRead(request.ContentLength); if (bytes != null && bytes.Length > 0) { content = request.ContentEncoding.GetString(bytes); } WXLog.Write(content, "获得的post请求数据" + DateTime.Now.ToString("ddHHmmss")); return(content); }
public bool InsertLog(WXLog log) { DbCommand sqlStringCommand = this.database.GetSqlStringCommand("INSERT INTO [Ecshop_WXLog]([AddTime],[UpdateTime],[StartTime],[EndTime],[Type],[Remark],[IsSuccess]) VALUES(@AddTime,@UpdateTime,@StartTime,@EndTime,@Type,@Remark,@IsSuccess)"); this.database.AddInParameter(sqlStringCommand, "AddTime", DbType.DateTime, log.AddTime); this.database.AddInParameter(sqlStringCommand, "StartTime", DbType.DateTime, log.StartTime); this.database.AddInParameter(sqlStringCommand, "UpdateTime", DbType.DateTime, log.UpdateTime); this.database.AddInParameter(sqlStringCommand, "EndTime", DbType.String, log.EndTime); this.database.AddInParameter(sqlStringCommand, "Type", DbType.String, log.Type); this.database.AddInParameter(sqlStringCommand, "Remark", DbType.String, log.Remark); this.database.AddInParameter(sqlStringCommand, "IsSuccess", DbType.Boolean, log.IsSuccess); return(this.database.ExecuteNonQuery(sqlStringCommand) > 0); }
public void Alldown(List <TelRecord> tels) { WebClient download = new WebClient(); DateTime endtime = DateTime.Now.AddDays(-31); var pp = (from oo in _basicInfor.Record where oo.Downtime > endtime select oo).ToList(); foreach (var tel in tels) { var rec = pp.FindAll(p => p.CallTTnO == tel.calltono & p.StartTime == tel.starttime.ToString("yyyy-MM-dd HH:mm:ss")); if (rec.Count > 0) { continue; } try { if (string.IsNullOrEmpty(tel.path)) { continue; } string path = Path.Combine(CurrUserLogin.downloaddir, tel.calltono + " " + tel.starttime.ToString("yyyy-MM-dd HH:mm:ss") + ".mp3"); download.DownloadFile(tel.path, path); Record record = new Record(); record.ID = Guid.NewGuid().ToString(); record.StartTime = tel.starttime.ToString("yyyy-MM-dd HH:mm:ss"); record.CallTTnO = tel.calltono; record.URL = tel.path; record.Downtime = DateTime.Now; record.MD5 = tel.md5; record.Path = path; if (_basicInfor.Connection.State == ConnectionState.Closed) { _basicInfor.Connection.Open(); } _basicInfor.Record.InsertOnSubmit(record); CurrUserLogin.dowload.Add(record); } catch (Exception e) { WXLog.Error("下载" + tel.path + "文件出错", e); } } CurrUserLogin.lastupdatetime = DateTime.Now; SaveOpt("lastupdatetime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); if (_basicInfor.Connection.State == ConnectionState.Closed) { _basicInfor.Connection.Open(); } _basicInfor.SubmitChanges(); }
static void Main() { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); StartingUtil.InitSystemSettings(); //StartingUtil.CheckDbVersion(); Application.Run(new Mainform()); }catch (Exception e) { WXLog.Error("程序发生错误", e); } }
public bool SaveSystemSettinsConfig() { bool bReturn = false; try { bReturn = SaveXML(XMLUtil.XmlSerialize <SystemSettingsInfo>(ServiceLocator.SystemSettings, "SystemSettings"), SystemFilePath.FilePathSystemSetting); } catch (Exception ex) { WXLog.Error("保存系统配置失败", ex); throw new Exception("保存系统配置失败"); } return(bReturn); }
private static bool AddTable(string sql, string tablename) { bool isSuccess = true; try { int a = SQLiteHelper.ExecuteNonQuery(sql); } catch (System.Data.SQLite.SQLiteException ex) { string a = ex.Message; if (a.Contains("already exists")) { isSuccess = true; WXLog.Info(tablename + "已添加"); } else if (a.Contains("duplicate")) { isSuccess = true; WXLog.Info(tablename + "已添加"); } else { isSuccess = false; WXLog.Info("添加" + tablename + "失败,发生错误" + a); } } catch (Exception e) { isSuccess = false; WXLog.Info("添加" + tablename + "失败"); } if (isSuccess) { WXLog.Info("添加" + tablename + "完成"); } return(isSuccess); }
/// <summary> /// 获取Token的方法 /// </summary> /// <returns></returns> public static bool GetToken() { WXLog.Info("开始获取Token"); string postData = "{\"appId\":\"" + ConfigurationManager.AppSettings["appId"] + "\",\"appSecret\":\"" + ConfigurationManager.AppSettings["appSecret"] + "\"}"; try { string json = WebService(postData, PosServiceConfig.GetTokenUrl); TokenData token = Tools.JsonToObject <TokenData>(json); if (token != null && token.data.accessToken != null) { TokenInfo.TokenEd = token.data; TokenInfo.TokenDateTime = DateTime.Now.AddSeconds(token.data.expiresIn - 2); WXLog.Info("获取到Token"); } else { token = new TokenData(); token.data.accessToken = ""; TokenInfo.TokenEd = token.data; TokenInfo.TokenDateTime = DateTime.Now; WXLog.Info("未获取到Token"); return(false); } } catch (Exception e) { Token token = new Token(); token.accessToken = ""; TokenInfo.TokenEd = token; TokenInfo.TokenDateTime = DateTime.Now; WXLog.Info("获取Token出错"); return(false); } return(true); }
public static bool InsertLog(WXLog log) { return(new WXLogDao().InsertLog(log)); }
public static bool UpdateLog(WXLog log) { return(new WXLogDao().UpdateLog(log)); }
private void DoWork(object sender, DoWorkEventArgs e) { lock (updateLocker) { try { WXLog.Debug("LiveUpdate DoWork Start。"); if (!Directory.Exists(CurrUserLogin.lastdownloaddir)) { Directory.CreateDirectory(CurrUserLogin.lastdownloaddir); } /* 开始下载更新文件*/ float progress = 0; try { string path = Path.Combine(CurrUserLogin.lastdownloaddir, tel.calltono + " " + tel.starttime.ToString("yyyy-MM-dd HH:mm:ss") + ".mp3"); System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(tel.path); System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse(); long totalBytes = myrp.ContentLength; System.IO.Stream st = myrp.GetResponseStream(); System.IO.Stream so = new System.IO.FileStream(path, System.IO.FileMode.Create); long totalDownloadedByte = 0; byte[] by = new byte[1024]; this.Invoke(new ThreadStart(delegate() { pgbProgress.Visible = true; })); int osize = st.Read(by, 0, (int)by.Length); while (osize > 0) { totalDownloadedByte = osize + totalDownloadedByte; System.Windows.Forms.Application.DoEvents(); so.Write(by, 0, osize); osize = st.Read(by, 0, (int)by.Length); progress = (float)totalDownloadedByte / (float)totalBytes * 100; this.Invoke(new ThreadStart(delegate() { pgbProgress.Value = Convert.ToInt32(progress); })); } so.Close(); st.Close(); this.Invoke(new ThreadStart(delegate() { trl.SaveDownloadToDB(tel, path); MessageBox.Show("下载完成!"); this.Close(); })); } catch (System.Exception exc) { WXLog.Error("LiveUpdateController.DoWork failed,", exc); Thread.Sleep(2000); this.Invoke(new ThreadStart(delegate() { MessageBox.Show("下载失败:" + exc.Message); })); //return; } } catch (Exception ex) { WXLog.Error("LiveUpdateController.DoWork failed,", ex); Thread.Sleep(2000); } } }
public void Execute(XmlNode node) { ErrorLog.Write("start go WXMsgRecordJob"); DateTime startTime = DateTime.Now; DateTime endTime = DateTime.Now; int pageSize = 50; bool update = false; WXLog log = WXHelper.GetWXLog("IsSuccess=0 ORDER BY StartTime ASC"); if (log.Id != 0) { update = true; startTime = log.StartTime; } else { log = WXHelper.GetWXLog("IsSuccess=1 ORDER BY StartTime DESC"); if (log.Id != 0) { if (log.StartTime.Date.AddDays(1) == DateTime.Now.Date) { return; } startTime = log.EndTime.AddSeconds(1); } else { startTime = startTime.AddDays(-1).Date; } } endTime = startTime.Date.AddDays(1).AddSeconds(-1); SiteSettings masterSettings = SettingsManager.GetMasterSettings(false); WebUtils webUtils = new WebUtils(); string returnString = string.Empty; DataTable dtMsg = CreateEmptyDataTable(); DataRow dr = null; for (int i = 0; i < 2147483647; i++) { StringBuilder strJson = new StringBuilder(); strJson.Append("{"); strJson.AppendFormat("\"endtime\":{0},", DataHelper.ConvertUniversalTime(endTime)); strJson.AppendFormat("\"pageindex\":{0},", i + 1); strJson.AppendFormat("\"pagesize\":{0},", pageSize); strJson.AppendFormat("\"starttime\":{0}", DataHelper.ConvertUniversalTime(startTime)); strJson.Append("}"); ErrorLog.Write("请求微信服务器,获取客服聊天记录" + strJson.ToString()); returnString = webUtils.DoPost(string.Format(wx_MsgRecord_URL, TokenApi.GetToken_Message(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret)), strJson.ToString()); ErrorLog.Write(returnString); WXMsgPackage package = null; try { package = Newtonsoft.Json.JsonConvert.DeserializeObject <WXMsgPackage>(returnString); } catch (Exception ex) { ErrorLog.Write(ex.ToString()); } if (package == null || package.RecordList == null || package.RecordList.Length == 0) { break; } foreach (WXMsgRecord record in package.RecordList) { dr = dtMsg.NewRow(); dr["Id"] = i; dr["OpenId"] = record.OpenId; dr["OperCode"] = record.OperCode; dr["Text"] = record.Text; dr["Worker"] = record.Worker; if (string.IsNullOrEmpty(record.Worker) || record.Worker.Trim() == "") { dr["WorkerNo"] = ""; } else { dr["WorkerNo"] = record.Worker.Substring(0, record.Worker.IndexOf('@')); } DateTime d = DataHelper.ConvertTimeFromUniversal(record.UniversalTime); dr["Time"] = d; dr["HappenDate"] = d.Date; dr["HappenMonth"] = d.ToString("yyyy-MM"); dtMsg.Rows.Add(dr); } //break; } WXLog newLog = new WXLog(); newLog.AddTime = DateTime.Now; newLog.UpdateTime = DateTime.Now; newLog.StartTime = startTime; newLog.EndTime = endTime; newLog.Type = 1; if (dtMsg.Rows.Count <= 0) { newLog.IsSuccess = true; newLog.Remark = "当前查询时间没有记录"; WXHelper.InsertLog(newLog); return; } bool b = WXHelper.BathAddWXMsgRecord(dtMsg); ErrorLog.Write(Newtonsoft.Json.JsonConvert.SerializeObject(newLog)); if (b) { newLog.IsSuccess = true; if (update) { newLog.Id = log.Id; newLog.Remark = "修复聊天记录成功"; WXHelper.UpdateLog(newLog); } else { newLog.Remark = "更新聊天记录完成"; WXHelper.InsertLog(newLog); } } else { newLog.IsSuccess = false; if (update) { newLog.Id = log.Id; newLog.Remark = "修复聊天记录失败"; WXHelper.UpdateLog(newLog); } else { newLog.Remark = "更新聊天记录失败"; WXHelper.InsertLog(newLog); } } }
/// <summary> /// Get方式请求 /// </summary> /// <param name="postdate"></param> /// <param name="url"></param> /// <param name="timeOut"></param> /// <returns></returns> public static string WebGet(string postdate, string url, int timeOut = 10) { string responseText = String.Empty; try { if (TokenInfo.TokenDateTime < DateTime.Now) { if (!GetToken()) { responseText = "{\"Result\":\"FAILURE\",\"Message\":\"获取Token失败\",\"error\":\"获取Token失败\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; return(responseText); } } url += postdate + "&accessToken=" + TokenInfo.TokenEd.accessToken; WXLog.Info("Get请求的URL" + url + "请求开始"); HttpWebRequest request; // 创建一个HTTP请求 //url = HttpUtility.UrlEncode(url, System.Text.Encoding.UTF8); request = (HttpWebRequest)WebRequest.Create(url); request.Method = "get"; request.Timeout = timeOut * 1000; HttpWebResponse response; response = (System.Net.HttpWebResponse)request.GetResponse(); StreamReader myreader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8); responseText = myreader.ReadToEnd(); // Console.WriteLine("responseText"+responseText); WXLog.Info("请求结束,返回结果" + responseText); myreader.Close(); } catch (WebException ex) { WXLog.Error("HTTP发送数据失败:", ex); switch (ex.Status) { case WebExceptionStatus.NameResolutionFailure: responseText = "{\"Result\":\"FAILURE\",\"Message\":\"未找到服务器,请检查网络设置\",\"error\":\"未找到服务器,请检查网络设置\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; case WebExceptionStatus.ConnectFailure: responseText = "{\"Result\":\"FAILURE\",\"Message\":\"与服务器链接失败,请检查网络设置\",\"error\":\"与服务器链接失败,请检查网络设置\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; case WebExceptionStatus.Timeout: responseText = "{\"Result\":\"FAILURE\",\"Message\":\"请求超时,请重试\",\"NewData\":\"false\",\"error\":\"请求超时,请重试\",\"success\":\"false\",\"isSuccess\":false}"; break; //*************20160506 add by zxy 捕获到协议级错误时,将token过期时间置为当前,便于下次直接请求 case WebExceptionStatus.ProtocolError: TokenInfo.TokenDateTime = DateTime.Now; responseText = "{\"Result\":\"FAILURE\",\"Message\":\"" + ex.Status + ",请重试\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; default: responseText = "{\"Result\":\"FAILURE\",\"Message\":\"" + ex.Message + "\",\"error\":\"" + ex.Message + "\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; } } catch (Exception ex) { responseText = "{\"Result\":\"FAILURE\",\"Message\":\"" + ex.Message + "\",\"error\":\"" + ex.Message + "\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; WXLog.Error("Get请求失败", ex); } return(responseText); }
/// <summary> /// POST基础方法 /// 流水上传为50秒超时,其他的为10秒 /// </summary> /// <param name="postData"></param> /// <param name="url"></param> /// <returns></returns> public static string WebService(string postData, string url, int posTime = 10000)//在没有传参的情况下赋值默认值 { WXLog.Info("WebService Start"); string json = "{\"Result\":\"FAILURE\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; //创建HttpWebRequest对象 try { // WXLog.Debug("SendRestRequest WebService Start"); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); //目标主机ip地址 //模拟POST的数据 Encoding utf8 = Encoding.UTF8; byte[] data = utf8.GetBytes(postData); request.Method = "POST"; request.ContentType = "application/json;charset=UTF-8;"; if (TokenInfo.TokenEd != null && TokenInfo.TokenEd.accessToken != "") { request.Headers.Add("Authorization", TokenInfo.TokenEd.accessToken); request.Headers.Add("CORP_ID", ConfigurationManager.AppSettings["CORP_ID"]); //企业ID 从配置文件中读取 } request.Timeout = posTime; //超时10秒之后进行提示,这是全部的 request.ContentLength = data.Length; using (Stream newStream = request.GetRequestStream()) { newStream.Write(data, 0, data.Length); newStream.Close(); } //获得HttpWebResponse对象 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); WXLog.Debug("SendRestRequest WebService End"); if (response.StatusCode.ToString() != "OK") { WXLog.Error("服务器响应失败,response.StatusCode=【" + response.StatusCode.ToString() + "】"); // throw new DataAccessException(WSMessageCode.SendFailed.ToString()); } //获得响应流 Stream receiveStream = response.GetResponseStream(); if (receiveStream != null) { StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); json = readStream.ReadToEnd(); WXLog.Info("返回数据" + json); // Console.WriteLine(json); response.Close(); receiveStream.Close(); readStream.Close(); } } catch (WebException ex) { WXLog.Error("HTTP发送数据失败:", ex); switch (ex.Status) { case WebExceptionStatus.NameResolutionFailure: json = "{\"Result\":\"FAILURE\",\"Message\":\"未找到服务器,请检查网络设置\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; case WebExceptionStatus.ConnectFailure: json = "{\"Result\":\"FAILURE\",\"Message\":\"与服务器链接失败,请检查网络设置\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; case WebExceptionStatus.Timeout: json = "{\"Result\":\"FAILURE\",\"Message\":\"请求超时,请重试\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; //*************20160506 add by zxy 捕获到协议级错误时,将token过期时间置为当前,便于下次直接请求 case WebExceptionStatus.ProtocolError: TokenInfo.TokenDateTime = DateTime.Now; json = "{\"Result\":\"FAILURE\",\"Message\":\"" + ex.Message + ",请重试\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; default: json = "{\"Result\":\"FAILURE\",\"Message\":\"" + ex.Message + "\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; break; } } catch (Exception ex) { WXLog.Error("HTTP发送数据失败:", ex); json = "{\"Result\":\"FAILURE\",\"Message\":\"" + ex.Message + "\",\"NewData\":\"false\",\"success\":\"false\",\"isSuccess\":false}"; } finally { WXLog.Info("SendRestRequest End"); } return(json); }
public ActionResult Index() { WXLog.WriteLog("111111"); return(base.View()); }
/// <summary> /// 从xml字符串解析消息 /// </summary> /// <param name="xml">xml字符串</param> /// <returns>返回消息</returns> public static RequestBaseMessage Parse(string xml) { try { RequestBaseMessage msg = null; //将xml字符串解析成JObject对象 XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); string json = JsonConvert.SerializeXmlNode(doc); JObject jo = (JObject)JObject.Parse(json)["xml"]; string MsgType = (string)jo["MsgType"][CDATA_KEY]; WXLog.Write(MsgType, "进来" + MsgType + "事件了"); //解析消息基类 msg = ParseBaseMessage(jo); ErrorMessage e = null; BatchMeterial b = MyWay.Areas.WeiXin.Meterial.Meterial.BatchGet("测试公众号", MultiMediaTypeEnum.news, 0, 2, out e); //获取各分类的字段,并构造消息 switch (msg.MsgType) { case RequestMessageTypeEnum.text: string content = (string)jo["Content"][CDATA_KEY]; if (content == "天气") { msg = ParseImageMessage1(msg, jo, "https://mmbiz.qlogo.cn/mmbiz/D1aYATIFatWdxfb99IPptNDj3vqCiaSLpspegmdU4IFpRd40oqctN9gI9g2EZE4qq5eTqEAP2Xjb9J0onD5nNWQ/0?wx_fmt=jpeg", "nxoGNdQHF7AWPDlpfGZQ9_TkxdCdC3rUe0CbGZ5Ss5Y"); } else if (content == "时间") { msg = ParseTextMessage1(msg, jo); } else { msg = ParseTextMessage(msg, jo); } break; case RequestMessageTypeEnum.image: msg = ParseImageMessage(msg, jo); break; case RequestMessageTypeEnum.voice: msg = ParseVoiceMessage(msg, jo); break; case RequestMessageTypeEnum.video: msg = ParseVideoMessage(msg, jo); break; case RequestMessageTypeEnum.location: msg = ParseLocationMessage(msg, jo); break; case RequestMessageTypeEnum.link: msg = ParseLinkMessage(msg, jo); break; case RequestMessageTypeEnum.Event: msg = ParseEventMessage(msg, jo); break; default: throw new NotImplementedException(string.Format("未实现消息类型{0:g}解析。", msg.MsgType)); } //返回 return(msg); } catch (Exception ex) { Log.WriteFile(ex); throw; } }