java 钉钉机器人,java发送钉钉消息
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
先建个钉钉群,并加好机器人
此时,机器人已经添加完毕,接下来编写我们连接机器人小哥的代码
导入com。阿里巴巴。快速JSON。JSON
导入com。谷歌。常见。收藏。列表;
导入com。谷歌。常见。收藏。地图;
导入Java。util。列表;
导入Java。util。地图;
/**
* @作者杨浩
* @版DingTalkTest.java,v 0.1 2019-03-29 11:36
*/
公共类DingTalkTest {
公共静态void main(String[] args){
尝试{
//钉钉机器人地址(配置机器人的webhook)
串鼎网址=https://oapi.dingtalk.com/robot/send?"访问令牌=.";
//是否通知所有人
布尔isAtAll=false
//通知具体人的手机号码列表
ListString移动列表=列表。new ArrayList();
//钉钉机器人消息内容
字符串内容=小哥,你好!;
//组装请求内容
string reqStr=buildReqStr(content,isAtAll,mobile list);
//推送消息(http请求)
string result=http util。贴JSON(丁URL,reqStr);
系统。出去。println( result== result);
}catch(异常e){
e。printstacktrace();
}
}
/**
* 组装请求报文
* @param内容
* @返回
*/
私有静态字符串buildReqStr(String content,boolean isAtAll,ListString mobileList) {
//消息内容
MapString,字符串内容map=maps。new hashmap();
contentMap.put(content ,内容);
//通知人
MapString,Object atMap=maps。new hashmap();
//1.是否通知所有人
atMap.put(isAtAll ,is atall);
//2.通知具体人的手机号码列表
atMap.put(atMobiles ,移动列表);
MapString,对象请求映射=映射。new hashmap();
reqMap.put(msgtype , text );
reqMap.put(文本,内容映射);
reqMap.put(at ,atMap);
返回JSON。tojsonstring(请求映射);
}
}运行结果如下:
result=={errmsg:ok , errcode:0钉钉群显示消息:
好吧,简单的消息推送,这就完成了!
我们再来测试一下通知所有人和通知具体人
将isAtAll更改为true
//是否通知所有人
布尔isAtAll=true
//通知具体人的手机号码列表
ListString移动列表=列表。new ArrayList();
增加通知人号码列表(注:伊萨塔尔和移动列表不能同时生效)
//是否通知所有人
布尔isAtAll=false
//通知具体人的手机号码列表
ListString移动列表=列表。new ArrayList();
移动列表。添加( 182 * * * * * * *);
再来测试一下特殊符号
换行标识符
/**
* 换行标识符
*/
私有静态最终字符串NEWLINE= \ n
//钉钉机器人消息内容
//字符串内容=小哥,你好!;
字符串缓冲区sb=新字符串缓冲区();
某人追加(小哥,你好!)。追加(换行符)。追加(看会书);
字符串内容=sb。tostring();
emoji图片
先获取绘文字图片的采用双字节对字符进行编码编码
编写代码如下:
/**
* 苹果采用双字节对字符进行编码编码
*/
私有静态最终字符串APPLE= \ ud83c \ udf4e
//钉钉机器人消息内容
//字符串内容=小哥,你好!;
字符串缓冲区sb=新字符串缓冲区();
某人追加(小哥,你好!)。追加(换行符)。追加(看会书)。追加(换行符)。追加(吃个).追加(苹果);
字符串内容=sb。tostring();
通常在我们的项目中,作为一些告警加入,方便且实用
很有意思的钉钉机器人,很多实用技巧,可以深入去探索一波!
更新于2019-12-05
很多小伙伴留言咨询超文本传送协议(超文本传输协议的缩写)请求,这边给大家2个超文本传送协议(超文本传输协议的缩写)请求代码
1. maven项目
添加依赖
!-糊涂工具-
属国
groupIdcn.hutool/groupId
artifactIdhutool-all/artifactId
版本4 .0 .12/版本
/dependencyhttp请求代码
私有静态最终int超时=10000
公共静态字符串波斯特逊(字符串url,字符串reqStr) {
字符串体=null
尝试{
body=HttpRequest.post(url).正文(请求字符串)。超时(超时).执行()。body();
} catch(异常e) {
e。printstacktrace();
}
返回正文;
}2. 非maven项目
添加冲突包
httpclient-xxx.jar
commons-log-XXX。冲突
超文本传送协议(超文本传输协议的缩写)请求代码
公共静态字符串波斯特逊(字符串url,字符串正文){
//创建客户端对象
可关闭的http客户端http client=createCustomClient();
CloseableHttpResponse响应=空
字符串resultString=null
尝试{
//创建提供直接提交请求
http post http post=新http post(URL);
http帖子。添加头( Content-Type , application/JSON );
如果(体!=null) {
http帖子。setentity(新字符串实体(body, utf-8 ));
}
//执行超文本传送协议(超文本传输协议的缩写)请求
响应=http客户端。执行(http post);
resultString=实体实用工具。tostring(响应。getentity(), utf-8 );
} catch(异常e) {
e。printstacktrace();
}最后{
尝试{
如果(回应!=null) {
回应。close();
}
} catch(异常e) {
e。printstacktrace();
}
}
返回结果字符串;
}
公共静态可关闭http客户端createCustomClient(){
请求配置默认请求配置=请求配置。自定义()。setSocketTimeout(120 * 1000)。setConnectTimeout(120 * 1000)。setconnectionrequesttime out(120 * 1000)。setStaleConnectionCheckEnabled(true)。build();
返回HttpClients.custom().setDefaultRequestConfig(默认请求配置).build();
}方法仅供参考,项目里面有现成的http请求,可以直接用!
以上就是学习爪哇岛实现钉钉机器人消息推送的示例代码的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。