当前位置 主页 > 服务器问题 > Linux/apache问题 >

    基于java使用钉钉机器人向钉钉群推送消息

    栏目:Linux/apache问题 时间:2019-12-02 15:37

    这篇文章主要介绍了基于java使用钉钉机器人向钉钉群推送消息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    第一步、登录钉钉电脑版,获得钉钉机器人的webhook;

    第二步,用java发送post请求给钉钉完成消息推送

    package com.thinkgem.wlw.modules.lhjh.DingTalk;
    
    import com.alibaba.fastjson.JSON;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.*;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
    /**
     * @Author: zhouhe
     * @Date: 2019/6/20 14:49
     */
    public class SendHttps {
      private static Logger logger = LoggerFactory.getLogger(SendHttps.class);
      /**
       * 发送POST请求,参数是Map, contentType=x-www-form-urlencoded
       *
       * @param url
       * @param mapParam
       * @return
       */
      public static String sendPostByMap(String url, Map<String, Object> mapParam) {
        Map<String, String> headParam = new HashMap();
        headParam.put("Content-type", "application/json;charset=UTF-8");
        return sendPost(url, mapParam, headParam);
      }
    
      /**
       * 向指定 URL 发送POST方法的请求
       *
       * @param url  发送请求的 URL
       * @param param 请求参数,
       * @return 所代表远程资源的响应结果
       */
      public static String sendPost(String url, Map<String, Object> param, Map<String, String> headParam) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
          URL realUrl = new URL(url);
          // 打开和URL之间的连接
          URLConnection conn = realUrl.openConnection();
          // 设置通用的请求属性 请求头
          conn.setRequestProperty("accept", "*/*");
          conn.setRequestProperty("connection", "Keep-Alive");
          conn.setRequestProperty("user-agent",
              "Fiddler");
    
          if (headParam != null) {
            for (Entry<String, String> entry : headParam.entrySet()) {
              conn.setRequestProperty(entry.getKey(), entry.getValue());
            }
          }
          // 发送POST请求必须设置如下两行
          conn.setDoOutput(true);
          conn.setDoInput(true);
          // 获取URLConnection对象对应的输出流
          out = new PrintWriter(conn.getOutputStream());
          // 发送请求参数
          out.print(JSON.toJSONString(param));
          // flush输出流的缓冲
          out.flush();
          // 定义BufferedReader输入流来读取URL的响应
          in = new BufferedReader(
              new InputStreamReader(conn.getInputStream()));
          String line;
          while ((line = in.readLine()) != null) {
            result += line;
          }
        } catch (Exception e) {
          logger.info("发送 POST 请求出现异常!" + e);
          e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally {
          try {
            if (out != null) {
              out.close();
            }
            if (in != null) {
              in.close();
            }
          } catch (IOException ex) {
            ex.printStackTrace();
          }
        }
        return result;
      }
    }