一封传话API文档 一封传话API文档
首页 (opens new window)
  • 三分钟快速接入
  • 弹幕接入

    • 弹幕快速体验
    • 一行代码集成弹幕
    • 浏览器弹幕挂件
  • 推送MCP
  • 推送skill
  • 快速开始

    • 使用php代码
    • 使用java代码
    • 使用python代码
    • 使用go代码
    • 使用csharp代码
    • 使用javascript代码
    • 使用nodejs代码
    • 客户端
    • 消息市场
  • API文档

    • 简介
    • 消息推送API
    • 发送提醒API
    • 电脑端在线调试API步骤
    • 一对多人推送功能
    • 一对多端推送通道
    • 在线测试以及消息查询API
    • Markdown语法
    • 推送日志与图表统计
    • 群组提醒用户注册与自动登录SDK
  • 浏览器插件

    • 浏览器插件
    • 浏览器挂件
  • 企业微信群机器人推送配置
  • 企业微信应用推送配置
  • 钉钉群机器人推送配置
  • 飞书群机器人推送配置
  • webhook推送配置
  • 官方邮件配置
  • 自定义SMTP邮件配置
  • 系统功能使用额度
  • 收不到消息如何排查
  • 消息内容如何换行
  • 卡片消息不显示正文
  • 接口是否支持https以及安全性
  • 是否支持群组功能
  • 是否支持多端提醒功能
  • 如何解决微信推送没有提示音的问题
  • 是否支持发送图片
  • 遇到乱码或者※号怎么办
  • 其他问题※号怎么办
  • 问题反馈
  • 关于
  • 友情链接

一封传话

专注于消息推送领域,提供极简API,一行代码即可帮您迅速完成消息的推送。
首页 (opens new window)
  • 三分钟快速接入
  • 弹幕接入

    • 弹幕快速体验
    • 一行代码集成弹幕
    • 浏览器弹幕挂件
  • 推送MCP
  • 推送skill
  • 快速开始

    • 使用php代码
    • 使用java代码
    • 使用python代码
    • 使用go代码
    • 使用csharp代码
    • 使用javascript代码
    • 使用nodejs代码
    • 客户端
    • 消息市场
  • API文档

    • 简介
    • 消息推送API
    • 发送提醒API
    • 电脑端在线调试API步骤
    • 一对多人推送功能
    • 一对多端推送通道
    • 在线测试以及消息查询API
    • Markdown语法
    • 推送日志与图表统计
    • 群组提醒用户注册与自动登录SDK
  • 浏览器插件

    • 浏览器插件
    • 浏览器挂件
  • 企业微信群机器人推送配置
  • 企业微信应用推送配置
  • 钉钉群机器人推送配置
  • 飞书群机器人推送配置
  • webhook推送配置
  • 官方邮件配置
  • 自定义SMTP邮件配置
  • 系统功能使用额度
  • 收不到消息如何排查
  • 消息内容如何换行
  • 卡片消息不显示正文
  • 接口是否支持https以及安全性
  • 是否支持群组功能
  • 是否支持多端提醒功能
  • 如何解决微信推送没有提示音的问题
  • 是否支持发送图片
  • 遇到乱码或者※号怎么办
  • 其他问题※号怎么办
  • 问题反馈
  • 关于
  • 友情链接
  • 新手快速开始

    • 三分钟快速接入
    • 弹幕快速体验
    • 一行代码集成弹幕
    • 浏览器弹幕挂件
  • MCP和skill

    • 推送MCP
    • 推送Skill
  • 快速开始

    • 简介
    • PHP语言
    • JAVA语言
      • java告警工具类demo
    • Python语言
    • Go语言
    • C#语言
    • 客户端
    • JavaScript语言
    • Node.js语言
    • 错误代码
    • 消息市场
    • Github Actions插件
  • API文档

    • 简介
    • 消息推送API
    • 发送提醒API
    • 电脑端在线调试API步骤
    • 一对多人推送功能
    • 一对多端推送通道
    • 在线测试以及消息查询API
    • Markdown语法
    • 推送日志与图表统计
    • 群组提醒用户注册与自动登录SDK
  • 扩展应用

    • 浏览器插件
    • 浏览器挂件
  • 指南
  • 快速开始
一封传话
2024-12-08
目录

JAVA语言

提示

由于java生态比较丰富,而且几乎所有人都有自己实现POST请求的工具类,这么就不提供SDK了。

建议使用Guava自带限流工具类, 例如10秒告警一次,防止大量请求消耗你自己的服务器,如果使用redis分布式限流更好,这里还用到了Hutool工具包下的http请求类。

Hutool官网说明文档: https://hutool.cn/docs/#/ (opens new window) 最新maven如下

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.11</version>
</dependency>

1
2
3
4
5
6

下面的告警工具类还用到了 Guava 的限流工具,需额外引入(只跑最小示例则不需要):

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>32.1.3-jre</version>
</dependency>
1
2
3
4
5

java告警工具类demo:

# java告警工具类demo


import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.google.common.util.concurrent.RateLimiter;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
 * Java系统告警工具类
 */
public class SystemAlarmUtil {

	private final static RateLimiter rateLimiter = RateLimiter.create(1d);

	private SystemAlarmUtil() {
		super();
	}

	public static String sendAlarmMessage(String title, String message) {
		return sendAlarmMessage(title, message, null);
	}

	public static String sendAlarmMessage(String title, String message, String url) {
		try {
			// count 每次消耗的令牌10个, 那么每10秒才会通过一次 timeout 超时等待的时间, 等待超过1秒就拒绝发送
			if (!rateLimiter.tryAcquire(10, 1, TimeUnit.SECONDS)) {
				return null;
			}

			// 创建json对象作为requestBody,注意正文的字段名必须是 body
			Map<String, Object> body = new HashMap<>();
			body.put("head", title);
			body.put("body", message);
			if (url != null && !url.isEmpty()) {
				body.put("url", url);
			}
			// 添加请求头信息
			Map<String, String> heads = new HashMap<>();
			// 使用json发送请求,下面的是必须的
			heads.put("Content-Type", "application/json;charset=UTF-8");
			HttpResponse response = HttpRequest.post("https://www.phprm.com/services/push/send/4d05f4abdb0a0c2a0269900809946903")
					.headerMap(heads, false).body(JSONUtil.toJsonStr(body)).timeout(5 * 1000).execute();
			System.out.println("告警推送结果: " + response.body());
			return response.body();
		} catch (Exception exception) {
			exception.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {
		sendAlarmMessage("系统故障告警", "故障模块: 订单模块\n订单ID=xxxx\n订单金额: 100元\n故障原因: xxxx");
	}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

不需要 Guava 限流、只想跑通最小示例的新手,可以用下面的精简版本(只依赖 Hutool):

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;

import java.util.HashMap;
import java.util.Map;

public class PushDemo {
    public static void main(String[] args) {
        Map<String, Object> body = new HashMap<>();
        body.put("head", "系统故障告警");                 // 必填:标题
        body.put("body", "故障模块: 订单模块\n订单ID=xxxx"); // 选填:正文,支持换行
        body.put("url", "");                              // 选填:点击跳转链接

        Map<String, String> heads = new HashMap<>();
        heads.put("Content-Type", "application/json;charset=UTF-8");

        HttpResponse response = HttpRequest.post(
                "https://www.phprm.com/services/push/send/4d05f4abdb0a0c2a0269900809946903")
                .headerMap(heads, false)
                .body(JSONUtil.toJsonStr(body))
                .timeout(5000)
                .execute();
        System.out.println(response.body());
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#Demo代码#Java代码
Last Updated: 2026/09/11, 21:21:10
PHP语言
Python语言

← PHP语言 Python语言→

最近更新
01
弹幕快速体验
09-11
02
一行代码集成弹幕
09-11
03
三分钟快速接入
09-11
更多文章>
Theme by Vdoing | Copyright © 2024-2026

友情链接:推送API | 推送移动版

Copyright © 2024 All rights reserved Powered by phprm.com版权所有 | 京ICP备14058182号-3
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式