adlu 发表于 2018-3-7 14:13:38

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.0\r\n\r\n
其中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请求呢??

Angel_YY_ST 发表于 2018-3-7 15:23:32

butterflyspring 发表于 2018-3-7 15:46:20

看来ESP8266不少人用,我刚用他做了一个IOT的TCP传输,还是比较简单使用的.你说的http就没用过了

adlu 发表于 2018-3-7 16:13:42

Angel_YY 发表于 2018-3-7 15:23
esp8266 发起https 请求,请求 https 的api 等等,整个项目工程见附件。虽然不是STM32的代码,应该可以参考 ...

谢谢。这个是arduino的例程,我看看

Msq002 发表于 2018-8-13 21:23:42

AT+CIPSTART=“SSL”,”api.k780.com”,443 就可以建立https连接了

飞跃1998 发表于 2018-8-27 20:14:14

学习

hdright 发表于 2018-10-5 11:22:54

Msq002 发表于 2018-8-13 21:23
AT+CIPSTART=“SSL”,”api.k780.com”,443 就可以建立https连接了

好像这样也不行啊

AT+CIPSTART="SSL","api.k780.com",443


ERROR
CLOSED

dcr1105 发表于 2019-12-6 10:03:16

楼主搞定了吗?HTTPS GET怎么请求

很大的鱼 发表于 2019-12-13 19:21:30

配置WIFI模块连接服务器,进入透传模式,发给GET请求就行了

dcr1105 发表于 2020-3-12 16:39:51

dangtiaojing 发表于 2019-12-13 19:21
配置WIFI模块连接服务器,进入透传模式,发给GET请求就行了

透传模式支持https?您有试过吗?能否分享下命令语句?看官方AT spec说不支持

墨雨汐 发表于 2023-9-10 22:57:30

小挖个坟,前面那位哥们说的没有问题,ESP8266确实可以通过

AT+CIPSTART="SSL","www.baidu.com",443

建立https连接,但是前提需要在运行CIPSTART命令前设置SSL buffer 大小

AT+CIPSSLSIZE=4096

如此设置后便可成功建立HTTP SSL连接了
页: [1]
查看完整版本: ESP8266如何发送HTTPS请求?