C/C++接入预警通知API:实现方案

C/C++程序怎么发预警通知 工业网关、嵌入式采集程序、桌面监控工具很多用C/C++编写,设备异常发生时需要主动发短信或打电话。互亿无线预警通知API是HTTPS POST,C/C++生态里常用libcurl发起请求,标准HTTP调用无需引…

C/C++程序怎么发预警通知

工业网关、嵌入式采集程序、桌面监控工具很多用C/C++编写,设备异常发生时需要主动发短信或打电话。互亿无线预警通知API是HTTPS POST,C/C++生态里常用libcurl发起请求,标准HTTP调用无需引入第三方依赖。本文给出实现方案。

接口与参数

通道地址
短信https://api.ihuyi.com/sms/Submit.json
语音https://api.ihuyi.com/voice/vm
闪信https://api.ihuyi.com/flash/Submit.json

必填account、password、mobile、content,成功返回code=2与smsid。可选templateid与time参数。

libcurl示例

#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *stream) {
    fwrite(ptr, size, nmemb, stdout);
    return size * nmemb;
}

int main(void) {
    CURL *curl = curl_easy_init();
    if (!curl) return 1;

    char *data = "account=API_ID&password=API_KEY"
                 "&mobile=13800138000"
                 "&content=%E3%80%90%E8%AE%BE%E5%A4%87%E5%91%8A%E8%AD%A6%E3%80%91%E6%B8%A9%E5%BA%A6%E8%B6%85%E9%99%90%E3%80%82";

    curl_easy_setopt(curl, CURLOPT_URL, "https://api.ihuyi.com/sms/Submit.json");
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_cb);
    curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10L);
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);

    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "err: %s\n", curl_easy_strerror(res));

    curl_easy_cleanup(curl);
    return 0;
}

编译与依赖

  • Linux下安装libcurl-dev,编译加 -lcurl
  • HTTPS需要系统带CA证书,否则SSL校验失败
  • 中文content需URL编码,可用curl_easy_escape处理

在采集程序里集成

  1. 采集线程读到传感器越限,连续两个周期才触发告警
  2. 调用上面的sendAlert函数,按级别选短信或语音地址
  3. 解析返回JSON,code=2记录smsid到本地日志

嵌入式设备资源有限,建议把libcurl调用封装成独立线程,不阻塞主采集循环。5秒首发失败自动换通道,避免网关到短信平台的网络抖动漏掉传感器告警。互亿无线提供11种语言代码示例,24小时可发送,按成功计费。C/C++团队若想把设备告警从"写日志"升级为"主动通知",注册免费试用,拿测试条数先跑通一条传感器告警。

立即开始免费测试

注册即送免费测试条数,30分钟快速接入多通道预警API

免费注册,开始测试
咨询热线:400-118-6878
高新技术企业

高新技术企业

专精特新企业

专精特新企业

ISO9001认证

ISO9001 认证

安全等级认证

安全等级认证

AAA信用企业

AAA 信用企业