【问题标题】:HTTPS get requests with NodeMCU and ESP8266HTTPS 使用 NodeMCU 和 ESP8266 获取请求
【发布时间】:2017-01-04 12:15:07
【问题描述】:

我在使用 NodeMCU 执行 HTTPS GET 请求时遇到问题,尽管根据他们的文档和 StackOverflow 上的 this answer 似乎应该可行。

我正在尝试的代码是:

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)

我做错了什么?

【问题讨论】:

    标签: esp8266 nodemcu


    【解决方案1】:

    你没有做错任何事。如果您使用启用了 DEBUG 的固件执行此操作,您会看到 SSL 握手失败。

    乐鑫 SDK 附带的 SSL 库仅支持 4 cipher suites。它们都不在 httpbin.org 使用的 SSL 证书支持的密码列表中。

    【讨论】:

    • 哦!那么你知道有什么方法可以完成这个请求吗?
    • 是的,这是正确的答案。我们在our issues list 和 SO 上遇到过几次。在 NodeMCU 中的 SDK 使用 mbedTLS instead of axTLS 之前,您无法与 httpbin.org 建立加密连接。
    猜你喜欢
    • 2016-06-29
    • 2018-01-27
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    相关资源
    最近更新 更多