call to HTTPClient::begin declared with attribute error: obsolete API, use ::begin(WiFiClient, url)

这篇博客介绍了在遇到8266库版本不一致导致的错误时,如何修改HTTPClient的使用方式以适应新的库。通过引入WiFiClient并将其作为参数传递给HTTPClient的begin方法,可以解决这个问题。

应该是8266自带库版本不一样,此处需要改一下用法:


WiFiClient client; //新添加
HTTPClient httpClient;
httpClient.begin(client,url); 

即可。

### Arduino HTTPClient::begin API过时问题的解决方案 在Arduino中,`HTTPClient::begin` 方法确实存在过时的问题。为了解决这一问题,可以使用 `WiFiClient` 参数来替代旧版的 `HTTPClient::begin` 方法。以下是更新后的代码实现: ```cpp #include <WiFi.h> #include <HTTPClient.h> const char* ssid = "your_SSID"; // 替换为你的WiFi SSID const char* password = "your_PASSWORD"; // 替换为你的WiFi密码 const char* serverName = "jsonplaceholder.typicode.com"; // 示例API地址(注意去掉http://前缀) void setup() { Serial.begin(115200); WiFi.begin(ssid, password); // 连接到WiFi // 等待连接 while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // 创建WiFiClient实例 WiFiClient client; // 使用新的HTTPClient::begin方法 HTTPClient http; if (http.begin(client, serverName, 80, "/posts/1")) { // 注意路径和端口号 int httpResponseCode = http.GET(); // 发送GET请求 // 检查响应代码 if (httpResponseCode > 0) { String payload = http.getString(); // 获取响应内容 Serial.println("Response Code: " + String(httpResponseCode)); Serial.println("Payload: " + payload); // 打印响应内容 } else { Serial.print("Error on HTTP request: "); Serial.println(httpResponseCode); } http.end(); // 结束HTTP请求 } else { Serial.println("Failed to connect to server"); } } void loop() { // 空循环 } ``` #### 更新说明 - 在新版的 `HTTPClient::begin` 方法中,需要显式传入一个 `WiFiClient` 实例[^1]。 - `serverName` 变量不再包含协议头(如 `http://`),而是直接指定主机名。 - 第三个参数为服务器端口号(例如 80 表示 HTTP 协议)。 - 第四个参数为具体的请求路径(例如 `/posts/1`)。 通过上述更改,可以解决 `HTTPClient::begin` API 过时的问题,并确保代码能够正常编译和运行。 #### 注意事项 - 如果使用 HTTPS 协议,请确保引入 `WiFiClientSecure` 类,并替换 `WiFiClient`[^1]。 - 需要根据实际的网络环境调整 `ssid` 和 `password` 的值。
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式点灯大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值