Java对接钉钉机器人推送消息

时间:2025-03-18 14:17:51
/** * 钉钉推送工具类 */ @Slf4j @Async @Component public class DingTalkPushUtil { /** * 按照钉钉API处理内容格式 * @param content */ public void pushText(String content) { MessageText message = new MessageText(); MessageContent messageContent = new MessageContent(); message.setMsgtype("text"); messageContent.setContent(content); message.setText(messageContent); push(message); } /** * 推送消息 * @param obj */ private void push(Object obj) { try { //自定义钉钉机器人生成链接 access_token钉钉自动生成 URL url = new URL("自己钉钉机器人里的链接"); //打开连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // Post 请求不能使用缓存 conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("Charset", "UTF-8"); conn.setRequestProperty("Content-Type", "application/Json; charset=UTF-8"); conn.connect(); OutputStream out = conn.getOutputStream(); String jsonMessage = JSONObject.toJSONString(obj); byte[] data = jsonMessage.getBytes(); // 发送请求参数 out.write(data); // flush输出流的缓冲 out.flush(); out.close(); //开始获取数据 InputStream in = conn.getInputStream(); byte[] content = new byte[in.available()]; in.read(content); log.info(">>>>>>>>>钉钉发送成功..........<<<<<<<<<"); } catch (Exception e) { e.printStackTrace(); } } }