httpclient 多久时间不请求则断开链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httpclient 多久时间不请求则断开链接相关的知识,希望对你有一定的参考价值。

参考技术A 十分钟左右。
服务器端禁止长连接,当连接到达一定时间会就会断开。

HTTP 客户端:因错误断开连接:-114 Lua

【中文标题】HTTP 客户端:因错误断开连接:-114 Lua【英文标题】:HTTP client: Disconnected with error: -114 Lua 【发布时间】:2021-05-11 14:18:42 【问题描述】:

我正在尝试使用我的 nodemcu 与 thingspeak 进行通信。我正在使用 lua,我正在尝试使用 get 请求推送数据,但我得到(字面意思...)这个错误:

> HTTP client: Disconnected with error: -114
HTTP client: Connection timeout
HTTP request failed

我不知道为什么。我已连接到我的 wifi,这是我的代码:

url = "https://api.thingspeak.com/update.json?api_key=XXXXXXXXXXXXXXXXX&field1=" .. temp
print(url)
http.get(url, nil, function(code, data)
    if (code < 0) then
      print("HTTP request failed")
    else
      print(code, data)
    end
  end)

这是我的模块:

crypto,dht,file,gpio,http,mdns,mqtt,net,node,pwm,sjson,spi,tmr,tsl2561,uart,websocket,wifi,tls

有什么想法吗?我不知道该怎么办。

【问题讨论】:

这可能是因为您使用的是加密的 HTTP 连接。我建议您阅读 nodemcu.readthedocs.io/en/latest/modules/http 和 TLS 模块文档的限制。 我读了这篇文章,你认为这是因为 thingspeak 的证书链太大而我的内存不足吗?在这种情况下,我避免该问题的想法很好,因为我在 lan 中使用 http protocolo 与树莓零 w 作为集线器进行通信。而不是关于 mqtt 为什么我收到错误“未授权”?如果我尝试将 mqtt 与我的 android 应用程序或我的 python 脚本一起使用,它工作得很好。也许是因为它甚至在 mqtt 中也使用 ssl/tls?所以也许无论如何都会出现同样的问题 【参考方案1】:

我使用“http.post”将我的传感器读数上传到 ThingSpeak:

  http.post('http://api.thingspeak.com/update',
     'Content-Type: application/json\r\n',
     '"api_key":"'..tsapikey..'","field1":"'..field1..'","field2":"'..field2..'","field3":"'..field3..'","field4":"'..field4..'"',
     function(code, data)
        if (code < 0) then
           print("HTTP request failed")
        else
           print(code, data)
        end
     end)

【讨论】:

以上是关于httpclient 多久时间不请求则断开链接的主要内容,如果未能解决你的问题,请参考以下文章

httpclient: 设置请求的超时时间,连接超时时间等

HTTP 客户端:因错误断开连接:-114 Lua

HttpClient 和 HttpClientHandler 是不是必须在请求之间进行处理? [关闭]

使用 Windows.Web.Http.HttpClient 类 PATCH 异步请求

split数据库多久断开连接

C# HttpClient 在补丁请求中返回 415 Unsupported media type