Java接入预警通知接口:多通道告警代码示例

Java是企业后端主力语言。在Spring Boot等服务中接入互亿无线预警通知接口,可在业务异常、监控告警、定时任务失败时自动下发短信或语音。本文给出基于HttpURLConnection的示例,不依赖第三方库。 Java接入的接口地址与…

Java是企业后端主力语言。在Spring Boot等服务中接入互亿无线预警通知接口,可在业务异常、监控告警、定时任务失败时自动下发短信或语音。本文给出基于HttpURLConnection的示例,不依赖第三方库。

Java接入的接口地址与参数

短信接口 https://api.ihuyi.com/sms/Submit.json ,语音接口 https://api.ihuyi.com/voice/vm ,闪信接口 https://api.ihuyi.com/flash/Submit.json 。三者参数一致,可配置切换通道。

  • account=APIID,password=APIKEY;
  • mobile=接收手机号,content=通知内容;
  • 模板变量方式需额外传templateid。

Java发送语音告警代码示例

下面工具类向语音接口POST,content为TTS文本:

public class NotifyClient {
    public static String sendVoice(String mobile, String content) throws Exception {
        String url = "https://api.ihuyi.com/voice/vm";
        String body = "account=APIID&password=APIKEY"
            + "&mobile=" + URLEncoder.encode(mobile, "UTF-8")
            + "&content=" + URLEncoder.encode(content, "UTF-8");
        HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
        conn.setRequestMethod("POST");
        conn.setDoOutput(true);
        conn.getOutputStream().write(body.getBytes("UTF-8"));
        return new String(conn.getInputStream().readAllBytes(), "UTF-8");
    } // code=2为提交成功
}

Java接入注意事项

  • content含中文与特殊字符时务必URL编码;
  • 设置连接与读取超时,防止拖垮业务线程池;
  • APIID与APIKEY放配置中心,不要写死在源码;
  • 返回code=2才算成功,失败记录日志并重试。

带超时与异常处理的完整示例

下面用Java 11内置的HttpClient发送POST请求,无需额外引入HTTP客户端库,适合直接放进Spring Boot或普通Java后端:

public static String sendSms(String mobile, String content) throws Exception {
    String body = "account=" + enc(System.getenv("IHUYI_APIID"))
            + "&password=" + enc(System.getenv("IHUYI_APIKEY"))
            + "&mobile=" + enc(mobile) + "&content=" + enc(content);
    HttpClient client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10)).build();
    HttpRequest req = HttpRequest.newBuilder(URI.create(URL))
            .timeout(Duration.ofSeconds(10))
            .POST(HttpRequest.BodyPublishers.ofString(body)).build();
    HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
    return resp.body(); // code=2为提交成功
}

依赖与运行说明

java.net.http从Java 11开始内置,JDK 11以上无需额外依赖。JDK 8可改用HttpURLConnection或OkHttp,参数拼装方式一致。密钥从环境变量读取,不要写死在代码里。

常见报错排查

  • ConnectException或SocketTimeout:确认服务器出网HTTPS通畅,必要时配置代理;
  • 返回code非2:打印resp.body(),根据msg判断是认证、手机号还是模板问题;
  • 语音场景把URL换成 https://api.ihuyi.com/voice/vm ,参数相同。

封装告警工具类,业务异常即可自动通知。前往注册免费试用获取密钥。

立即开始,免费体验

新用户注册即送免费测试额度,3分钟快速接入,专属客服全程指导

免费试用 →