钉钉推送工具类
依赖jar包
httpclient-4.5.5.jar
httpcore-4.4.1.jar
httpclient-cache-4.1.3.jar
Java代码
package base.util;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
/**
* @author 马家立
* @version 创建时间:2020年2月4日上午10:27:34
* @Description: 钉钉推送工具类
*/
public class DingDingSendUtils {
static Logger forPk = Logger.getLogger("forPk");
//推送到钉钉的department群指令
static String pk_WEBHOOK_TOKEN ="https://oapi.dingtalk.com/robot/send?access_token=略";
/**
* @Title:sendDingPkMessage
* @author:马家立
* @date:2020年2月4日 上午10:33:24
* @Description: 钉钉推送排课数据
* @param sendContent--待推送的排课数据信息
* @param WEBHOOK_TOKEN--推送到钉钉的群指令
* @return--String
*/
public static String sendDingPkMessage(String sendContent) {
forPk.info("进入DingDingSendBean的sendDingPkMessage");
try {
//单独推送人的手机号
String sendPhone = "";
//是否@所有人(true为所有人,false为不@所有人)
Boolean isAtAll = false;
// 监控数据信息推送到钉钉群根据传入Boolean值判断是否@所有人
String result = sendDingMessage(pk_WEBHOOK_TOKEN, sendContent, sendPhone, isAtAll);
return result;
} catch (Exception e) {
forPk.error("DingDingSendBean的sendDingPkMessage err", e);
return "error";
}
}
/**
* @Title:sendDingMessage
* @author:马家立
* @date:2020年2月4日 上午10:37:15
* @Description: 监控数据信息推送到钉钉群根据传入Boolean值判断是否@所有人
* @param WEBHOOK_TOKEN--钉钉群机器指令(http格式)
* @param sendContent--钉钉群机器指令(http格式)
* @param sendPhone--推送手机号
* @param isAtAll--是否@所有人(true为所有人,false为不@所有人)
* @return--String
*/
public static String sendDingMessage(String WEBHOOK_TOKEN, String sendContent, String sendPhone, Boolean isAtAll) {
forPk.info("进入DingDingSendBean的sendDingMessage");
try {
String result = "";
// new一个post的http (Ps:WEBHOOK_TOKEN是群机器人的推送指令)
HttpPost httppost = new HttpPost(WEBHOOK_TOKEN);
httppost.addHeader("Content-Type", "application/json; charset=utf-8");
// 钉钉参数格式拼接
String sendMsg = "{ \"msgtype\": \"text\", \"text\": {\"content\": \"" + sendPhone + "" + sendContent
+ "\"}, \"at\":{\"atMobiles\":[\"" + sendPhone + "\"], \"isAtAll\": " + isAtAll + "}}";
// 设置编码格式utf-8
StringEntity encode = new StringEntity(sendMsg, "utf-8");
httppost.setEntity(encode);
// 创建http客户端
HttpClient httpclient = HttpClients.createDefault();
// 响应http客户端
HttpResponse response = httpclient.execute(httppost);
forPk.info("response.getStatusLine().getStatusCode()==" + response.getStatusLine().getStatusCode());
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
result = EntityUtils.toString(response.getEntity(), "utf-8");
} else {
result = "钉钉信息推送失败";
}
forPk.info("钉钉信息发送结果:" + result);
return result;
} catch (Exception e) {
forPk.error("DingDingSendBean的sendDingMessage err", e);
return "error";
}
}
/**
* @Title:main
* @author:马家立
* @date:2019年1月9日 下午5:49:12
* @Description:main函数测试
* @param:@param args
*/
public static void main(String[] args) {
DingDingSendUtil.sendDingPkMessage("排课测试推送钉钉");
System.out.println("over");
}
}