主要代码类如下
package com.test.common; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.json.JSONObject; /* * 文件名:com.test.common;.SendRobotMsgUtils.java * 简述:TODO * 详述: * 新建时间:2022年5月2日 下午12:31:41 * 修改内容:[新增] * 修改时间:2022年5月2日 下午12:31:41 * 版本:1.0 * */ public class SendRobotMsgUtils { @SuppressWarnings({ "rawtypes", "unchecked" }) public boolean wechatRobotTxtMsg(String webhookUrl,String msgContent,List<String> mentioned_mobile_list) { boolean falg=false; //webhook地址 String msgtype="text"; HttpResponse response=null; try { if(webhookUrl!=null&&msgContent!=null) { HttpPost httpPost=new HttpPost(webhookUrl); CloseableHttpClient httpclient=HttpClients.createDefault(); httpPost.setHeader("Content-Type", "application/json; charset=utf-8"); Map<String,Object> param=new HashMap(); param.put("msgtype",msgtype); Map<String,Object> param_msg=new HashMap(); param_msg.put("content", msgContent); if(mentioned_mobile_list!=null&&mentioned_mobile_list.size()>0) { param_msg.put("mentioned_mobile_list", mentioned_mobile_list); } //封装消息体 param.put(msgtype, param_msg); String txtmsg=JSONObject.valueToString(param); System.out.println("*************执行前txtmsg:"+txtmsg); StringEntity entity = new StringEntity(txtmsg, "utf-8"); httpPost.setEntity(entity); System.out.println("*************执行前:"+httpPost.toString()); response=httpclient.execute(httpPost); if(response!=null&&response.getStatusLine()!=null&&response.getStatusLine().getStatusCode()==200) { String responseStr=response.getEntity().toString(); falg=true; System.out.println("*************执行结果:"+responseStr); } }else { System.out.println("*************输入参数为空********************************"); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return falg; } @SuppressWarnings({ "rawtypes", "unchecked" }) public boolean wechatRobotMarkdownMsg(String webhookUrl,String msgContent,List<String> mentioned_mobile_list) { boolean falg=false; //webhook地址 String msgtype="markdown"; HttpResponse response=null; try { if(webhookUrl!=null&&msgContent!=null) { HttpPost httpPost=new HttpPost(webhookUrl); CloseableHttpClient httpclient=HttpClients.createDefault(); httpPost.setHeader("Content-Type", "application/json; charset=utf-8"); Map<String,Object> param=new HashMap(); param.put("msgtype",msgtype); Map<String,Object> param_msg=new HashMap(); param_msg.put("content", msgContent); if(mentioned_mobile_list!=null) { param_msg.put("mentioned_mobile_list", mentioned_mobile_list); } //封装消息体 param.put(msgtype, param_msg); String txtmsg=JSONObject.valueToString(param); System.out.println("*************执行前txtmsg:"+txtmsg); StringEntity entity = new StringEntity(txtmsg, "utf-8"); httpPost.setEntity(entity); System.out.println("*************执行前:"+httpPost.toString()); response=httpclient.execute(httpPost); if(response!=null&&response.getStatusLine()!=null&&response.getStatusLine().getStatusCode()==200) { String responseStr=response.getEntity().toString(); falg=true; System.out.println("*************执行结果:"+responseStr); } }else { System.out.println("*************输入参数为空********************************"); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return falg; } public static void main(String[] args) { SendRobotMsgUtils srmu=new SendRobotMsgUtils(); SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:SSS"); String nowstr=sdf.format(new Date()); String webhookUrl="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=c17661d0c2e6"; String msgContent="监控机器人-普通文本消息\n消息时间:"+nowstr+";\n交易日期+支付渠道+渠道笔数+当日总笔数\n" + "你们所有人可以关闭此群消息!!!"; List<String> mlist=new ArrayList<String>(); mlist.add("@all"); mlist.add("18688888888"); // srmu.wechatRobotTxtMsg(webhookUrl,msgContent,mlist); String msgmkContent= "<h2>监控名称</h2>\r\n" + " <tr style=\"border: 3px ;border-color: black;\">\r\n" + " <th width=\"25%\">编号</th>\r\n" + " <th width=\"25%\">用户名</th>\r\n" + " <th width=\"25%\">姓名</th>\r\n" + " <th width=\"25%\">联系电话</th>\r\n" + " </tr>\r\n" + " \r\n" + " <tr>\r\n" + " <td style=\"border: 3px ;border-color: black;\">01</td>\r\n" + " <td >张三</td>\r\n" + " <td >姓名</td>\r\n" + " <td >18688888888</td>\r\n" + " </tr>\r\n" + "\r\n"; srmu.wechatRobotMarkdownMsg(webhookUrl, msgmkContent, mlist); } }
实际开发完成的功能效果可以访问:https://www.onekbit.com/wechatrobotinfo/selectlist.do 体验使用。
使用微信机器人定时群发消息: