arduino esp8266 请求服务器未得到响应(ESP8266HTTPClient)

本文解决ESP8266版本不一致导致的编译错误,并介绍如何配置ESP8266正确发送HTTP GET请求及处理服务器响应。

学习太极创客esp8266 服务器的基本操作,遇到了因版本不同导致编译无法通过;

此问题为我们在arduino下载的esp8266的版本为3.0.2版本,和官方给出来的历程所用的版本不同所导致的,我们需要添加两行代码

1、在begin()函数前面添加此代码

 2、需要将报错的函数加上一个参数,这是高版本esp8266的不同的地方

同时,编译成功后,端口无法获取到服务器响应的数据,HTTP发出的请求未得到响应,返回的结果为-1

WiFi Connected!URL: http://www.example.com
Send GET request to URL: http://www.example.com
Server Respose Code:
-1

未得到响应返回一个-1,那么我们在发送HTTP请求的同时设置让我们的程序未得到程序就一直在执行HTTP请求,得到响应则退出循环。

 //重点3 通过GET函数启动连接并发送HTTP请求
 
  int httpCode = httpClient.GET();
  while(httpCode == -1)
  {
    httpCode = httpClient.GET();
  }
  Serial.print("Send GET request to URL: ");
  Serial.println(URL);

最后:

⸮⸮|⸮`⸮l,⸮4b>⸮⸮⸮x⸮Z⸮⸮....
WiFi Connected!URL: http://www.example.com
Send GET request to URL: http://www.example.com
Server Response Payload: 
<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
        
    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>    
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>


资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 ESP8266是一款广受欢迎的Wi-Fi模块,常用于物联网(IoT)设备,因其体积小巧、功耗低且功能强大。在本项目中,我们着重探讨如何利用ESP8266发起HTTPS请求以访问安全的API接口。HTTPS是HTTP的安全版本,通过SSL/TLS协议对通信进行加密,确保数据传输的安全性。 HTTPS(Hypertext Transfer Protocol Secure)基于HTTP协议,通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)提供安全传输服务。 SSL/TLS的核心作用是建立加密通道,防止中间人攻击,保障数据的机密性和完整性。 证书机制是HTTPS安全的关键。服务器通常需要持有由权威证书颁发机构(CA)签名的数字证书,以证明其身份。 ESP8266内置TCP/IP协议栈,支持Wi-Fi连接,能够实现HTTP/HTTPS请求。 要在ESP8266上实现HTTPS请求,需使用支持SSL/TLS的库,例如ArduinoESP8266HTTPClient库。 ESP8266HTTPClient库提供API,方便开发者发起GET、POST等HTTP请求,并处理响应。 在Arduino IDE中,通过Library Manager搜索并安装该库。 初始化HTTPClient对象,设置以https://开头的API接口URL。 使用begin()方法指定URL并启动HTTPS连接。如果服务器证书有效,连接将成功建立。 发起GET或POST请求,如GET请求GET()方法,POST请求用POST()方法,可传递参数。 使用sendRequest()发送请求,通过available()检查响应是否准备好,用getString()
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值