Skip to content

由 WangChong 贡献,Ai-Thinker 进行整理

大家好,今天主要分享一下如何连接Wifi以及如何发送GET和POST请求

已经研究了好多天了。今天有一点小小的眉目。主要的问题是我没有学习FreeRTOS。不明白如何设置任务调度,不明白如何使任务进行排队即在上一个任务完成后执行下面的任务。 首先今天的示例工程位于 examples\wifi\sta\wifi_http, 我们首先打开wifi_http_client.c 如下图所示。

这个shell 命令是怎么回事呢? 在什么时候接受用户的命令呢? 我们要搞懂这个要首先看一下 main.c 的方法。

main.c 这里获取了外设Uart0,然后把串口的输入绑定到了shell命令的输入, 那么这个样子的话,只要这个串口收到数据的话,那么就会调用第一张截图中的自定义命令。

我们返回到wifi_http_client.c, 这里在接收到串口的命令后会进行解析,如果传入的命令数组长度小于2 的话,即说明命令不合法,它会响应一个提示告诉你命令的格式。

那么POST 和 GET请求该怎么发送呢? 请参考下图所示。 已经本人测试,可以发送POST 和 GET请求。 发送GET 或者POST的指令为 wifi_http_test jsonplaceholder.typicode.com 【wifi_http_test 主机地址】,路径地址根据下面代码中定义的有

如果你找不到公共的API接口。可以用这个网站

  1. https://jsonplaceholder.typicode.com/

连接WIFI 好,现在说一下怎么连接wifi,第一种方式是像上面一样的方式, 通过串口接收数据来连接wifi 连接wifi的指令为 wifi_sta_connect ywlim22@unifi v6%+Nt8M 还有一种方式即,在代码中使用shell_exec来把连结wifi的指令发送给自己,然后连接wifi

这种方式是可行的,但是我并没有找到这个 wifi_sta_connect 命令是在什么地方被绑定到命令行上的

那么在连接wifi后你就可以发送请求了。这里有一个问题是,你无法再使用一个shell_exec 去调用上述的发送POST和GET请求的指令。如果你调用的话,那么这个****shell_exec 会错误的执行,把下面的 POST和GET请求的命令当作连接wifi的命令。我暂时找不到原因。

然后还有一点重要的是, wifi_http_client.c 中的,这 wifi_test_http_client_init() 方法仅仅是用来发送POST 和GET请求的(可能还支持其他类型的请求,我没有尝试)不要想着试图用这个方法去调用连接WiFi的命令。我这里没有解决的是,如何通过代码的方式发送POST和GET请求基于这个例子。我这里有一个解决方案,但是我没有能力实现,因为我没有学过freertos.方案就是,写一个任务调度,在连接wifi之后调用请求。我自己尝试了但是,这个请求总是在wifi连接成功的时候就已经发送出去了,由于没有ip地址,所以失败。希望这个demo能带给大家思考,另外也希望大家有更好的办法可以分享给我谢谢!

请按照你自己的环境使用这个代码,或者仅仅拷贝Main.Cwifi_http_client.c 即可

上传的附件:

wifi_http.zip(11.06 KB, 下载次数: 15)

遇到问题?

如有其他问题,请到统一的提问与讨论区:Ai-Thinker Discussions

Released under the MIT License. Build Time 2026-09-11 14:52:23