HTTPS 使用 NodeMCU 和 ESP8266 获取请求
HTTPS get requests with NodeMCU and ESP8266
我在使用 NodeMCU 执行 HTTPS GET 请求时遇到问题,尽管根据他们的文档和 Whosebug 上的 此处似乎应该可行。
我正在尝试的代码是:
function getHTTPS()
http.get('https://httpbin.org/get', nil, function(code, data)
print(code, data)
end)
end
enduser_setup.start(
function()
print("Connected to wifi as: " .. wifi.sta.getip())
getHTTPS()
end,
function(err, str)
print("enduser_setup: Err #" .. err .. ": " .. str)
end
);
这让我得到了结果:-1 nil
。如果我将 URL 从 https://httpbin.org/get
更改为 http://httpbin.org/get
,我将得到预期的结果 200 <RESPONSE>
。
我的 NodeMCU 构建是:
NodeMCU custom build by frightanic.com
branch: master
commit: 95e85c74e7310a595aa6bd57dbbc69ec3516e9c6
SSL: true
modules: cjson,enduser_setup,file,gpio,http,mdns,net,node,tmr,uart,wifi build
built on: 2016-08-27 07:36
powered by Lua 5.1.4 on SDK 1.5.4.1(39cb9a32)
我做错了什么?
你没有做错任何事。如果您使用启用了 DEBUG 的固件执行此操作,您会看到 SSL 握手失败。
Espressif SDK 附带的 SSL 库仅支持 4 cipher suites。它们都不在 httpbin.org 使用的 SSL 证书支持的密码列表中。
我在使用 NodeMCU 执行 HTTPS GET 请求时遇到问题,尽管根据他们的文档和 Whosebug 上的
我正在尝试的代码是:
function getHTTPS()
http.get('https://httpbin.org/get', nil, function(code, data)
print(code, data)
end)
end
enduser_setup.start(
function()
print("Connected to wifi as: " .. wifi.sta.getip())
getHTTPS()
end,
function(err, str)
print("enduser_setup: Err #" .. err .. ": " .. str)
end
);
这让我得到了结果:-1 nil
。如果我将 URL 从 https://httpbin.org/get
更改为 http://httpbin.org/get
,我将得到预期的结果 200 <RESPONSE>
。
我的 NodeMCU 构建是:
NodeMCU custom build by frightanic.com
branch: master
commit: 95e85c74e7310a595aa6bd57dbbc69ec3516e9c6
SSL: true
modules: cjson,enduser_setup,file,gpio,http,mdns,net,node,tmr,uart,wifi build
built on: 2016-08-27 07:36
powered by Lua 5.1.4 on SDK 1.5.4.1(39cb9a32)
我做错了什么?
你没有做错任何事。如果您使用启用了 DEBUG 的固件执行此操作,您会看到 SSL 握手失败。
Espressif SDK 附带的 SSL 库仅支持 4 cipher suites。它们都不在 httpbin.org 使用的 SSL 证书支持的密码列表中。