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 获取请求的主要内容,如果未能解决你的问题,请参考以下文章