配置文件
private static string url = ConfigurationManager.AppSettings["WxWorkBOTUrl"].ToString().Trim();
启动发送
private void MainFrm_Load(object sender, EventArgs e){InitMethod();projectName = BasicDAL.GetProject();this.Text = $"【{projectName}】发票自动识别程序--{DbHelperSQL.connectionString}";WxWorkBOT.SendMess("Hi,我是**电子发票服务机器人 ,提醒:**电子发票服务已启动!");}
异常退出
[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.ThreadException += Application_ThreadException;Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;Application.ApplicationExit += Application_ApplicationExit;Application.Run(new MainFrm());}private static void Application_ApplicationExit(object sender, EventArgs e){WxWorkBOT.SendMess("Hi,我是**电子发票服务机器人 ,提醒:**电子发票服务已断开!!!");}static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e){try{WxWorkBOT.SendMess("Hi,我是**电子发票服务机器人 ,提醒:**合电子发票服务已断开!!!");}catch { }}private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e){Process[] ps = Process.GetProcessesByName("AutoInvoiceFXLH");if (ps.Length < 1){WxWorkBOT.SendMess("Hi,我是**电子发票服务机器人 ,提醒:**电子发票服务已断开!!!");}}}
using Newtonsoft.Json;
using System.Configuration;
using System.IO;
using System.Net;
using System.Text;namespace Common
{public class WxWorkBOT{private static string url = ConfigurationManager.AppSettings["WxWorkBOTUrl"].ToString().Trim();public static void SendMess(string mse,string connUrl = null){try{var jsonObject = new { msgtype = "text", text = new { content = mse } };PostUrl((connUrl == null? url: connUrl), JsonConvert.SerializeObject(jsonObject));}catch (System.Exception){}}public static string PostUrl(string url, string postData){string result = "";HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);req.Method = "POST";req.ContentType = "application/json";byte[] data = Encoding.UTF8.GetBytes(postData);req.ContentLength = data.Length;using (Stream reqStream = req.GetRequestStream()){reqStream.Write(data, 0, data.Length);reqStream.Close();}HttpWebResponse resp = (HttpWebResponse)req.GetResponse();Stream stream = resp.GetResponseStream();using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)){result = reader.ReadToEnd();}return result;}}
}