由 WildboarG 贡献,Ai-Thinker 进行整理
【wb2】http - get应用
[wb2]http - get应用
🧠 什么是 HTTP GET?
HTTP GET 是最常见的网页请求方式之一,作用是 向服务器请求信息,例如获取网页、查询数据、发起通知等。
请求格式一般像这样:
📜 点击展开完整代码
GET
/notify?title=警报&message=发现目标
HTTP/1.0
Host
:
192.168.0.233:8080
User-Agent
:
my-device这个请求访问了 192.168.0.233:8080 上的 /notify 路径,并携带了两个参数:title 和 message
📟 应用场景
- 嵌入式设备检测到异常,通过 HTTP GET 请求发出警报;
- IoT 设备定时上传状态;
- 控制服务端触发自动化流程(如通知机器人、记录日志等)。
🛠️ MCU 端实现(简版)
📜 点击展开完整代码
#
define
WEB_SERVER
"192.168.0.233"
#
define
WEB_PORT
"8080"
#
define
WEB_PATH
"/notify?title=警报&message=发现目标"
static
const
char
*REQUEST =
"GET "
WEB_PATH
" HTTP/1.0\r\n"
"Host: "
WEB_SERVER
":"
WEB_PORT
"\r\n"
"User-Agent: wb2-device\r\n"
"\r\n"
;
void
notify_task
(
void
*pvParameters)
{
// ... DNS解析 + socket连接略
write(sock, REQUEST,
strlen
(REQUEST));
// ... 接收响应略
close(sock);
}🖥️ 服务端 Python 示例
用 Flask 快速搭建一个 HTTP 接收服务:
📜 点击展开完整代码
from
flask
import
Flask, request
app = Flask(__name__)
@app.route(
"/notify"
)
def
notify
():
title = request.args.get(
"title"
)
message = request.args.get(
"message"
)
print
(
f"📢 来自设备的通知:
{title}
-
{message}
"
)
return
"OK"
app.run(host=
"0.0.0.0"
, port=
8080
)输出结果示例:
📜 点击展开完整代码
📢 来自设备的通知:警报 - 发现目标🧪 测试方法
你可以在浏览器中直接输入:
📜 点击展开完整代码
http:
//192.168.0.14:8080/notify?title=测试&message=一切正常应用测试
Bark 是一款非常方便的 iOS 推送通知工具,适合用来做 服务器/设备主动推送消息到手机。它背后的原理是:你通过一个 HTTP GET请求,把消息发送到 Bark 的服务器,Bark 会把这个消息通过 APNs 推送到你的 iPhone 上。
🔔 一句话解释:
Bark 就是一个“网页发消息 ➜ iPhone 收通知”的桥梁。
🛠️ 使用步骤:
1. 安装 Bark 应用(iOS)
去 App Store 搜索 Bark,图标是个狗头,下载安装。
2. 获取你的推送 URL
打开 Bark 后,应用会给你一个像这样的网址:
📜 点击展开完整代码
[https://api.day.app/你的设备Key](https://api.day.app/你的设备Key)这是你专属的推送地址!
3. 发送推送消息(GET 请求)
直接用浏览器、curl、或代码请求下面这个 URL:
📜 点击展开完整代码
https:
//api.day.app/你的设备Key/标题/内容例如:
📜 点击展开完整代码
https:
//api.day.app/AbCDefGHiJ/警报/发现异常数据你会立刻在手机上收到一条通知。
bark需要自建服务器,保护数据隐私安全。别担心,接下来带大家用docker搭建bark服务器, docker镜像仅仅只有23M大小。非常适合小型设备。比之前给大家推荐的GOFITY小的多得多。还有一点惊喜是bark不需要常驻后台,即便不启动。苹果的APNS推送也能实时发送到手机上,这就非常省电啦。
4. bark服务器的docker安装
- 拉取docker镜像
📜 点击展开:docker pull finab/bark-server
docker pull finab/bark-server- 启动服务
📜 点击展开完整代码
docker run -dt \
--name bark \
-p
8080
:
8080
\
-v /data/bark:/data \
finab/bark-server运行成功后先测试一下
📜 点击展开完整代码
curl http:
//0.0.0.0:8080/ping
{
"code"
:
200
,
"message"
:
"pong"
,
"timestamp"
:
1621936667
}5. 从wb2http get请求来将消息发到手机
在上次rd04雷达的demo(gotify [POST])上更改通知方式为(bark[GET],只需要修改NOTIFY代码的通知方式就可以了
📜 点击展开完整代码
#
define
WEB_SERVER
"192.168.0.233"
#
define
WEB_PORT
"8080"
#
define
WEB_PORTI 8080
#
define
WEB_PATH
"/你的令牌/rador?call=1"
void
notify_task
(
void
*pvParameters)
;
static
const
char
*REQUEST =
"GET "
WEB_PATH
" HTTP/1.0\r\n"
"Host: "
WEB_SERVER
":"
WEB_PORT
"\r\n"
"User-Agent: aithinker wb2\r\n"
"\r\n"
;
void
notify_task
(
void
*pvParameters)
{
int
sockfd;
struct
sockaddr_in
server_addr
;
char
response[
512
];
sockfd = socket(AF_INET, SOCK_STREAM,
0
);
if
(sockfd <
0
) {
printf
(
"socket failed\n"
);
vTaskDelete(
NULL
);
}
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(WEB_PORTI);
server_addr.sin_addr.s_addr = inet_addr(WEB_SERVER);
if
(connect(sockfd, (
struct
sockaddr *)&server_addr,
sizeof
(server_addr)) <
0
) {
printf
(
"connect failed\n"
);
close(sockfd);
vTaskDelete(
NULL
);
}
printf
(
"connected!\n"
);
write(sockfd, REQUEST,
strlen
(REQUEST));
int
n = read(sockfd, response,
sizeof
(response) -
1
);
if
(n >
0
) {
response[n] =
'\0'
;
printf
(
"Response:\n%s\n"
, response);
}
close(sockfd);
vTaskDelete(
NULL
);
}记得在wb2开启的网页中打开哨兵,不然雷达不工作。
6. 效果

根据我填写的rador ?call=1 除了弹窗通知,还有响铃报警。



