WIFI技术学习
直播中

王璨

7年用户 300经验值
私信 关注
[问答]

如何在ESP8266中发送HTTPS请求?

百度文库有篇文档《使用ESP8266的AT指令调用网络数据接口实例教程》,介绍了通过ESP8266获取北京时间的方法。内容如下:
一、开发环境
 网络数据接口平台:www.nowapi.com
 Wi-Fi模块型号:ESP8266 ESP-01
 AT指令集版本:0.40.0.0
 SDK版本:1.3.0
二、实验目的
使用ESP8266的AT指令查询标准北京时间API提供的北京时间。
三、实验步骤
(每条AT指令后均需要添加换行后再发送)  
1. 使用串口发送指令AT+CWMODE=1设置模块Wi-Fi应用模式为Station模式;  2. 发送指令AT+RST重启模块使应用模式更改生效;  3. 发送指令AT+CWJAP =“ssid”,”pwd”连接AP;  
4. 发送指令AT+CIPMUX=0设置模块为单路连接模式,模块默认为单路连接模式;  5. 发送指令AT+CIPSTART=“TCP”,”api.k780.com”,88与服务器建立TCP连接,域名前面一定不能加”http://”!;  
6. 发送指令AT+CIPMODE=1设置模块传输模式为透传模式;  
7. 发送指令AT+CIPSEND开启透传模式向服务器发送数据,模块收到此指令后先换行后返回”>“,每包数据以20ms间隔区分,每包最大2048字节;  
8. 然后发送以下内容向服务器发出HTTP请求获取北京时间(不可以用HTTP/1.1):
GET http://api.k780.com:88/?app=life.time&appkey={APPKEY}&sign={SIGN}&format=json HTTP/1.0rnrn
其中APPKEY和SIGN用你自己nowapi账户的Appkey和Sign代替,这里给出一个示例URL:  
http://api.k780.com:88/?app=life ... c99f2a4&format=json
更多请求方式请参考API说明页面;  
9.然后模块返回如下信息:
HTTP/1.1 200 OK
Date: Fri, 17 Jun 2016 14:30:44 GMT Server: Apache Content-Length: 207 Connection: close
Content-Type: application/json; charset=utf-8;  
{“success”:”1”,”result”:{“timestamp”:”1466173844”,”datetime_1”:”2016-06-17 22:30:44”,”datetime_2”:”2016年06月17日 22时30分44秒”,”week_1”:”5”,”week_2”:”星期五”,”week_3”:”周五”,”week_4”:”Thursday”}}
单片机可以从返回信息中解析出北京时间;  
10. 20ms后发送指令+++退出透传模式返回指令模式(后面不要换行);  11. 最后发送指令AT+CIPCLOSE断开模块与服务器的TCP连接。
例子中发送的是HTTP的GET请求,
请问,如果是HTTPS的GET请求呢??

回帖(10)

周静

2019-7-17 07:32:55
ESP8266里面塞SSL有点难。。
举报

李桂芝

2019-7-17 07:42:34
能不能通过MCU控制ESP8266,用AT指令 + 透传来做?
我用串口调试助手,按照1楼描述的步骤,是可以用GET方法获取北京时间信息的。
举报

张玲玲

2019-7-17 07:59:55
模块是支持HTTPS的,看下AT指令集 里面有相关的SSL的指令
举报

尤娟

2019-7-17 08:11:43
学习学习
举报

更多回帖

发帖
×
20
完善资料,
赚取积分