HTTPS (SSL) 使用 NodeMCU 获取请求

Posted

技术标签:

【中文标题】HTTPS (SSL) 使用 NodeMCU 获取请求【英文标题】:HTTPS (SSL) get request with NodeMCU 【发布时间】:2016-06-29 12:54:41 【问题描述】:

我想使用运行 NodeMCU 的 ESP8266 对 googleapi.com 执行 GET 请求,以从 google Calendar API 获取一些数据。该网站仅允许安全连接 (HTTPS/SSL)。

首先,我一直在尝试连接到 google.com(安全)尝试一下,但也没有成功。这是 LUA 代码:

conn=net.createConnection(net.TCP, 1)
conn:on("receive", function(sck, c) print(c) end )
conn:on("connection", function(conn)
      print("connected")
      conn:send("HEAD / HTTP/1.1\r\n".. 
             "Host: google.com\r\n"..
             "Accept: */*\r\n"..
             "User-Agent: Mozilla/4.0 (compatible; esp8266 Lua;)"..
             "\r\n\r\n") 
end )
conn:on("disconnection", function(conn)  print("disconnected") end )
conn:connect(443,"google.com")

什么都没有被触发(即使是“已连接”)。

我还通过选择 SSL 支持从网站http://nodemcu-build.com 下载了 最新 版本的 nodemcu(主分支)。

NodeMCU custom build by frightanic.com
    branch: master
    commit: c8037568571edb5c568c2f8231e4f8ce0683b883
    SSL: true

谁能告诉我我做错了什么?有人在Reddit 上报告了这个问题,但没有给出最终解决方案。

【问题讨论】:

【参考方案1】:

net 模块所需的修复在 master 分支上尚不可用。 PR 1014 2 月初才合并到 dev 分支。

dev 分支有一个 HTTP 客户端模块,通过它可以将您的代码缩短为单行代码。详情请见http://nodemcu.readthedocs.org/en/dev/en/modules/http/#httpget。

【讨论】:

感谢您的回答。确实,http.get() 函数运行良好。 HTTP 解决方案也适用于我。使用 NodeMCU 网络模块是否有任何更新?我觉得建立连接和发出请求会让芯片比通过http.post命令重新协商连接更快地发出更多的ssl请求。 @JoeAndolina 你可以关注github.com/nodemcu/nodemcu-firmware/issues/1146

以上是关于HTTPS (SSL) 使用 NodeMCU 获取请求的主要内容,如果未能解决你的问题,请参考以下文章

构建 NodeMCU 固件

使用 nodeMCU 的 Wifi 网状网络

Visual Basic https 获取请求 - 接受 SSL

编译NodeMcu

nodemcu随笔(esp8266 wifi)

用 NodeMCU 检查电池状态?