import java.io.IOException;
import org.apache.http.client.methods.CloseableHttpResponse;
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.apache.http.util.EntityUtils;
import com.test.utils.LogUtil;
/**
* <p>Title:QyWxMsgUtil</p>
* <p>Description: 企业微信机器人工具类</p>
*
* @author admin
* @date 2019年10月8日
*/
public class QyWxMsgUtil {
private static final LogUtil logger = LogUtil.getLogUtil(QyWxMsgUtil.class);
public static void main(String[] args) {
String webHookUrl="聊天机器人的地址";
Integer titleLevel=0;
String title="这是标题啊";
String content="这是内容";
sendQyWxTextMsg(webHookUrl, titleLevel, title, content);
}
/**
*
* <p>Title: sendQyWxTextMsg</p>
*
* <p>Description: 发送企业微信机器人文本内容</p>
*
* @param webHookUrl
* @param titleLevel 标题颜色:默认为green;1为yellow;2为red;
* @param title
* @param content
* @return
*
*/
public static boolean sendQyWxTextMsg(String webHookUrl,Integer titleLevel,String title,String content ){
boolean result=false;
String requestData = getRequestData(titleLevel, title, content);
String resp = post(webHookUrl, requestData);
logger.info("发送企业微信:返回结果:{0}", resp);
if (resp!=null && resp.contains("ok")) {
result=true;
}
return result;
}
/**
*
* <p>Title: getRequestData</p>
*
* <p>Description: 包装请求参数</p>
*
* @param titleLevel
* @param title
* @param content
* @return
*
*/
public static String getRequestData(Integer titleLevel, String title, String content) {
StringBuilder bd=new StringBuilder();
String titleLevelStr="info";//green
if (titleLevel!=null) {
if (titleLevel==1) {
titleLevelStr="comment";//yellow
}else if (titleLevel==2) {
titleLevelStr="warning";//red
}
}
bd.append("{\r\n");
bd.append("\"msgtype\": \"markdown\",\r\n");
bd.append("\"markdown\": {\r\n");
bd.append("\"content\": \"<font color='");
bd.append(titleLevelStr);
bd.append("'>");
bd.append(title);
bd.append("</font>\r\n");
bd.append(content);
bd.append("\"}\r\n");
bd.append("}");
return bd.toString();
}
/**
*
* <p>Title: post</p>
*
* <p>Description: 发送post请求</p>
*
* @param url
* @param content
* @return
*
*/
public static String post(String url, String content) {
String str = null;
CloseableHttpClient hc = HttpClients.createDefault();
try{
HttpPost req = new HttpPost(url);
StringEntity entity = new StringEntity(content, "UTF-8");
req.setEntity(entity);
CloseableHttpResponse rep = hc.execute(req);
try{
str = EntityUtils.toString(rep.getEntity(), "UTF-8");
}finally{
rep.close();
}
}catch(Exception e){
logger.error(e, "http post error : url={0},content={1}", url, content);
}finally{
try {
hc.close();
} catch (IOException e) {
logger.error(e, "http client close error : url={0},content={1}", url, content);
}
}
return str;
}
}