C#调用企业微信机器人推送数据(文字)

-- WeChatRobotMessageSender类用于封装与企业微信机器人发送Markdown消息相关的操作
using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace 企业微信接口测试
{
    // WeChatRobotMessageSender类用于封装与企业微信机器人发送Markdown消息相关的操作
    public class WeChatRobotMessageSender
    {
        // 私有字段,存储企业微信机器人的Webhook URL
        private readonly string webhookUrl;

        // 构造函数,用于初始化Webhook URL
        // 参数webhookUrl为企业微信机器人的Webhook地址
        public WeChatRobotMessageSender(string webhookUrl)
        {
            this.webhookUrl = webhookUrl;
        }

        // 异步方法,用于发送Markdown格式的消息到企业微信机器人
        // 参数content为要发送的Markdown消息内容
        public async Task SendMarkdownMessageAsync(string content)
        {
            // 创建一个匿名对象,用于构建要发送的消息结构
            var message = new
            {
                // 指定消息类型为Markdown
                msgtype = "markdown",
                // Markdown消息的具体内容
                markdown = new
                {
                    content = content
                }
            };

            // 将消息对象序列化为JSON字符串,以便通过HTTP请求发送
            string jsonMessage = JsonConvert.SerializeObject(message);

            // 使用HttpClient来发送HTTP请求,HttpClient会在using块结束时自动释放资源
            using (HttpClient client = new HttpClient())
            {
                // 创建一个StringContent对象,用于封装JSON消息内容,并指定编码和媒体类型为application/json
                var requestContent = new StringContent(jsonMessage, Encoding.UTF8, "application/json");

                try
                {
                    // 异步发送POST请求到指定的Webhook URL,携带请求内容
                    HttpResponseMessage response = await client.PostAsync(webhookUrl, requestContent);

                    // 检查响应是否成功(状态码为200 - 299)
                    if (response.IsSuccessStatusCode)
                    {
                        // 异步读取响应内容并转换为字符串
                        string result = await response.Content.ReadAsStringAsync();
                        // 输出响应结果,表明消息发送成功
                        Console.WriteLine("消息发送成功,响应内容:");
                        Console.WriteLine(result);
                    }
                    else
                    {
                        // 根据不同的状态码进行不同的错误提示
                        switch (response.StatusCode)
                        {
                            case System.Net.HttpStatusCode.Unauthorized:
                                // 如果状态码为Unauthorized,提示请求未授权,检查Webhook URL
                                Console.WriteLine("请求未授权,请检查Webhook URL是否正确。");
                                break;
                            case System.Net.HttpStatusCode.NotFound:
                                // 如果状态码为NotFound,提示请求的资源未找到,检查Webhook URL
                                Console.WriteLine("请求的资源未找到,请检查Webhook URL。");
                                break;
                            default:
                                // 其他状态码,输出请求失败及具体状态码
                                Console.WriteLine($"请求失败,状态码: {response.StatusCode}");
                                break;
                        }
                    }
                }
                catch (HttpRequestException httpEx)
                {
                    // 捕获并处理HTTP请求相关的异常,输出异常信息
                    Console.WriteLine($"发生HTTP请求异常: {httpEx.Message}");
                }
                catch (JsonSerializationException jsonEx)
                {
                    // 捕获并处理JSON序列化相关的异常,输出异常信息
                    Console.WriteLine($"发生JSON序列化异常: {jsonEx.Message}");
                }
                catch (Exception ex)
                {
                    // 捕获并处理其他未知异常,输出异常信息
                    Console.WriteLine($"发生异常: {ex.Message}");
                }
            }
        }
    }
}


-- 调用的内容写成方法

    #region 发送产品关键数据校验信息(文字)到企业微信机器人
    /// 
    /// 发送产品关键数据校验信息(文字)到企业微信机器人
    /// 
    /// 产品序列号
    /// 产线代码
    /// 工站
    /// 数据值
    /// 校对结果
    /// 异步任务
    static async Task SendProductVerificationMessage(string productSN, string LineOfProduction, string WorkStation, string DataValues, string Results)
    {
        // 定义企业微信机器人的Webhook URL
        string webhookUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4cb35184-f865-4988-8f94-b8d05bed0f70";
        // 创建WeChatRobotMessageSender类的实例,传入Webhook URL
        WeChatRobotMessageSender sender = new WeChatRobotMessageSender(webhookUrl);

        // 构建带有颜色、字体大小和字体加粗设置的Markdown内容,使用较浅颜色
        string markdownContent =
            $"#### 产品SN号关键数据校验信息\n" +
            $"**日期**:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}\n" +
            $"**产品序列号**:{productSN}\n" +
            $"**产线代码**:{LineOfProduction}\n" +
            $"**工站**:{WorkStation}\n" +
            $"**数据值**:{DataValues}\n" +
            $"**校对结果**:{Results}";

        await sender.SendMarkdownMessageAsync(markdownContent);
    } 
    #endregion



class Program
{
    static async Task Main()
    {
        // 调用封装的方法发送消息
        await SendProductVerificationMessage("XXXXXXXXXXXXXXXXXXXXX", "XXXXX - XXXX", "OPXXX", "100", "OK");

    }

你可能感兴趣的:(企业微信机器人信息推送,c#,企业微信,机器人)