企业微信机器人
今天升级了企业微信,发现新增了一个机器人功能,于是好奇的玩了一下。
目前发现该机器人主要用途是用来发布定时消息,或者发布监控程序报告。
代码如下:
1.控制层
package com.qt.controller; import com.qt.service.RobotService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/index") public class RobotController { @Autowired private RobotService robotService; /** * 测试企业微信机器人 * @return String */ @RequestMapping(value = "/testRobot", method = RequestMethod.GET) public String testRobot() { return robotService.testRobot(); } }
View Code
2.业务逻辑
package com.qt.service; import com.qt.utils.InterfaceUtils; import org.springframework.stereotype.Service; import com.alibaba.fastjson.JSONObject; @Service public class RobotService { /** * 测试企业微信机器人 * @return */ public String testRobot(){ String result; JSONObject text = new JSONObject(); text.put("content", "hello world!"); JSONObject msg = new JSONObject(); msg.put("msgtype", "text"); msg.put("text", text); String url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4e2f766b-419a-4767-ad3d-d3dae461f11a"; result = InterfaceUtils.sendPost(url,msg.toJSONString(),""); return result; } }
3.工具类
package com.qt.utils; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.params.ConnRoutePNames; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicHeader; import org.apache.http.protocol.HTTP; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; public class InterfaceUtils { public static String sendPost(String url, String data,String contentType){ String result = ""; contentType = "application/json"; try { org.apache.http.client.HttpClient client = new DefaultHttpClient(); //设置代理 //HttpHost proxy = new HttpHost("192.168.0.0", 8080, "http"); //client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); HttpPost post = new HttpPost(url); post.setHeader("Content-Type", contentType); post.addHeader("Authorization", "Basic YWRtaW46"); StringEntity s = new StringEntity(data, "utf-8"); s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,contentType)); post.setEntity(s); // 发送请求 HttpResponse httpResponse = client.execute(post); // 获取响应输入流 InputStream inStream = httpResponse.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, "utf-8")); StringBuilder strber = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null){ strber.append(line + "\n"); } inStream.close(); result = strber.toString(); } catch (Exception e) { e.printStackTrace(); } return result; } }
View Code
然而很不幸,才玩了没一会,管理员就把它关闭了。。。
相关文章