HTTPS数据检索错误

时间:2017-07-30 06:30:06

标签: http https esp8266 nodemcu

我安装了NodeMCU固件的ESP12(模块:httptls等。)

每当我尝试将http.get与https链接一起使用时,我会收到以下错误:

> http.get("https://pastebin.com/raw/cAB83eF1", nil, function(code, data)
>> if (code < 0) then
>> print("HTTP request failed")
>> else
>> print(code, data)
>> end
>> end)
> HTTP client: Disconnected with error: -114
HTTP client: Connection timeout
HTTP client: Connection timeout

当我尝试使用不带https的相同pastebin.com链接时,我能够接收数据和HTTP状态代码。

> http.get("http://pastebin.com/raw/cAB83eF1", nil, function(code, data)
>> if (code < 0) then
>> print("HTTP request failed")
>> else
>> print(code, data)
>> end
>> end)
> 200   test

引用docs of http.get

  

每个请求方法都接受一个回调函数,该函数在调用时调用   已收到服务器的响应。第一个参数是   状态代码,可以是常规HTTP状态代码,也可以是-1到   表示DNS,连接或内存不足故障或超时   (目前为10秒)。

由于文档说有效代码是-1和HTTP代码,我如何找出-114是什么?

Edit1 :使用调试选项ON构建固件后。我收到以下错误:

> http.get("https://pastebin.com/raw/cAB83eF1", nil, function(code, data)
>> if (code < 0) then
>> print("HTTP request failed")
>> else
>> print(code, data)
>> end
>> end)
> client handshake start.
please start sntp first !
please start sntp first !
client handshake failed!
Reason:[-0x7200]
HTTP client: Disconnected with error: -114
HTTP client: Connection timeout
HTTP client: Connection timeout
=rtctime.get()
1501394767  272709
>

根据日志语句Reason:[-0x7200] 0x72十六进制为-114十进制,稍后将打印Disconnected with error: -114

sntp.sync()的输出中可以看到rtctime.get()已经执行过。即使已同步SNTP,为什么要打印消息please start sntp first !

稍后在日志中,在-114消息之后,它会显示Connection timeout消息。如何更改https连接的超时?任何指向C /头文件的指针?

注意:我的Linux机器上安装了git repo和docker镜像,用于构建固件。

PS:我需要https,因为我将使我的ESP12与云托管的RESP API进行通信。

1 个答案:

答案 0 :(得分:1)

这是一个简短而令人不满意的答案:你点击了https://github.com/nodemcu/nodemcu-firmware/issues/1707