使用NodeMCU进行HTTPS (SSL) get请求

我想使用运行NodeMCU的ESP8266向googleapi.com执行GET请求,以从谷歌日历API中获取一些数据。该网站只允许安全连接(HTTPS / SSL)。

首先,我一直在尝试连接到谷歌.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”.. 
             “接受:* / * \ r \ n”.. 
             “User-Agent:Mozilla / 4.0(兼容; esp8266 Lua;)”.. 
             “\ r \ n \ r \ n”)
end)
conn:on(“disconnection”,function(conn)print(“disconnected”)end)
conn:connect(443,“google.com”)

没有触发任何操作(甚至没有“已连接”)。

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

由frightanic.com提供的NodeMCU自定义构建
    分支:主
    提交:c8037568571edb5c568c2f8231e4f8ce0683b883
    SSL:true

有人告诉我我错了吗?有人在[Reddit]上报告了该问题(https://www.reddit.com/r/esp8266/comments/2zt58x/does_ssl_work/),但没有最终解决方案。

点赞
用户131929
用户131929

需要修复 net 模块的版本还未在主分支上可用。PR 1014 只在二月初合并到 dev 分支。

dev 分支有一个 HTTP 客户端模块,可以将您的代码简化为一个一行代码。请参见http://nodemcu.readthedocs.org/en/dev/en/modules/http/#httpget 获取详细信息。

2016-03-14 13:54:27