企业微信报警工具类,可用于项目内告警信息通知。

import com.alibaba.fastjson2.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSocketFactory;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.*;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;/*** 企业微信报警工具类* 文档地址:https://developer.work.weixin.qq.com/document/path/91770** @author hou.xy*/
public class WxWorkAlarmUtil {private static final Logger logger = LoggerFactory.getLogger(WxWorkAlarmUtil.class);/*** 发送http请求** @param reqMsg   请求报文* @param robotUrl 机器人地址(企业微信群右上角更多菜单中添加群机器人所生成的地址)* @param isProxy  是否开启代理* @param ip       代理IP* @param port     代理端口* @throws Exception*/public static void postAlarm(String reqMsg, String robotUrl, boolean isProxy, String ip, Integer port) throws Exception {logger.info("发送企业微信请求报文:" + reqMsg);StringBuilder resMsg = new StringBuilder();HttpsURLConnection httpsUrlConnection = null;OutputStream outStr = null;BufferedReader in = null;SSLSocketFactory ssf = BZX509TrustManager.getSSFactory();try {URL url = new URL(robotUrl);//代理模式if (isProxy) {Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, port));httpsUrlConnection = (HttpsURLConnection) url.openConnection(proxy);} else {//非代理模式httpsUrlConnection = (HttpsURLConnection) url.openConnection();}httpsUrlConnection.setSSLSocketFactory(ssf);httpsUrlConnection.setRequestProperty("accept", "*/*");httpsUrlConnection.setRequestProperty("connection", "Keep-Alive");httpsUrlConnection.setRequestProperty("Content-type", "application/json");httpsUrlConnection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");httpsUrlConnection.setDoOutput(true);httpsUrlConnection.setDoInput(true);httpsUrlConnection.setUseCaches(false);httpsUrlConnection.setRequestMethod("POST");httpsUrlConnection.setConnectTimeout(60000);httpsUrlConnection.connect();//发送请求outStr = httpsUrlConnection.getOutputStream();HashMap<String, Object> msgHead = new HashMap(16);msgHead.put("msgtype", "markdown");HashMap<String, Object> msg = new HashMap(16);msg.put("content", reqMsg);msgHead.put("markdown", msg);outStr.write(JSON.toJSONString(msgHead).getBytes(StandardCharsets.UTF_8));outStr.flush();outStr.close();in = new BufferedReader(new InputStreamReader(httpsUrlConnection.getInputStream(), StandardCharsets.UTF_8));String line;while ((line = in.readLine()) != null) {resMsg.append(line);}logger.info("接收企业微信应答报文:" + resMsg);} catch (SocketTimeoutException e) {logger.info("", e);throw new Exception("读取回执超时", e);} catch (ConnectException ce) {logger.info("", ce);throw new Exception("连接失败 请检查http服务端是否开启", ce);} catch (Exception e) {logger.info("", e);throw new Exception("已连接到服务器,但接收应答出现异常", e);} finally {//关闭流及连接if (outStr != null) {outStr.close();}if (in != null) {in.close();}if (httpsUrlConnection != null) {httpsUrlConnection.disconnect();}}}}

JAVA-企业微信报警工具类相关推荐

  1. java企业微信消息发送工具类

    java企业微信消息发送工具类 用途 基于java实现调用企业微信发送消息,文件,图片. 实现效果 文件列表 文件名 用途 WechatUtil.java 企业微信工具类 WechatTest.jav ...

  2. Java企业微信会话存档开发(从跳坑到爬坑)

    Java企业微信会话存档开发(从跳坑到爬坑) 本文仅作为方便首次开发企业微信使用 文章目录 Java企业微信会话存档开发(从跳坑到爬坑) 前言 一.开发准备 1.企业微信后台配置 2.sdk下载 3. ...

  3. JAVA I/O流工具类TextFile

    JAVA I/O流工具类TextFile由广州疯狂软件java培训分享: 本文是一个TextFile类,通过这个类我们可以调用其中的方法来简化对文件的读写,这段代码的可用性比较强.这个TextFile ...

  4. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  5. 【Java 代码实例 13】Java操作pdf的工具类itext

    目录 一.什么是iText? 二.引入jar 1.项目要使用iText,必须引入jar包 2.输出中文,还要引入下面```itext-asian.jar```包 3.设置pdf文件密码,还要引入下面` ...

  6. java图片缩放工具类,一个JAVA图形缩放处置工具类

    一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...

  7. java redis remove_最全的Java操作Redis的工具类

    RedisUtil 当前版本:1.1 增加更全的方法,对以前的部分方法进行了规范命名,请放心替换成新版本. 介绍 最全的Java操作Redis的工具类,使用StringRedisTemplate实现, ...

  8. java图形验证码生成工具类

    转载自   java图形验证码生成工具类 生成验证码效果       ValidateCode.java 验证码生成类 package cn.dsna.util.images; import java ...

  9. java 代理ip工具类_Java基础之java处理ip的工具类

    java处理ip的工具类,包括把long类型的Ip转为一般Ip类型.把xx.xx.xx.xx类型的转为long类型.根据掩码位获取掩码.根据 ip/掩码位 计算IP段的起始IP.根据 ip/掩码位 计 ...

最新文章

  1. 视觉SLAM中PNP求解
  2. 发现一个有意思的博主(科研工作者)
  3. python requests的作用_Python爬虫第一课:requests的使用
  4. (chap2 TCP/IP基础知识) TCP/IP协议分层模型-应用层
  5. 老粮商谋定国际农民丰收节贸易会·万祥军:巨头跨国不上市
  6. 数据结构——字符串(未完)
  7. wxWidgets:wxIntProperty类用法
  8. SpringBoot2.X (2)- 使用Spring Initializer 快速创建项目
  9. zabbix3.4配置钉钉机器人报警
  10. java equals 字符串_Java String 字符串 比较 == equals
  11. Android 8 AudioPolicy 分析
  12. oracle mysql收费_oracle 数据库收费标准
  13. Tasking编译器开发TC275(Tricore)中使用自定义段
  14. 飞桨PaddlePaddle 英特尔神经计算棒 联合优化AI算法CPU部署性能,推动产业低成本智能化升级
  15. gocv拆分颜色通道
  16. 华为无线路由器信道怎么测试软件,路由器无线信道是什么怎么设置
  17. Android开发者跳槽必备:连续四年百度Android岗必问面试题!讲的明明白白!
  18. AndroidIOS APP启动速度专项测试方法
  19. MyBatis-plus从入门到精通(全)
  20. 华为和荣耀学编程计算机推荐,2020~2021笔记本电脑推荐(华为篇)

热门文章

  1. CORBA 架构体系指南(通用对象请求代理体系架构)
  2. 【Python123】鸡兔同笼
  3. java 接收 char字符型
  4. SQL每日一题 牛客17 10月的新客户单价和获客成本
  5. 手把手搭建属于自己的搜索引擎——SearX
  6. diskpart命令磁盘分区
  7. AI工程师 需要掌握的技能
  8. 高仿微信上划取消录音
  9. Java实验——分别统计字符串中出现的大写字母、小写字母个数,以及出现的数字字符以及其他字符的个数
  10. 重装系统Windows10纯净版操作步骤(微pe)