我对 NodeJS 还很陌生,一直在 AWS Lambda 上尝试编写一个简单的 Alexa 服务来告诉我家里的温度。我遇到了一个让我陷入困境的问题 - 当我尝试与 https 端点通信以查询家庭自动化恒温器的一些数据时 - 我的 Node 应用程序因错误而终止:
Error: Parse Error
at TLSSocket.socketOnData (_http_client.js:362:20)
at emitOne (events.js:96:13)
at TLSSocket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at TLSSocket.Readable.push (_stream_readable.js:134:10)
at TLSWrap.onread (net.js:551:20)
Run Code Online (Sandbox Code Playgroud)
这是一个相当简单的通过 https 的 GET 请求,端点的提供者使用 Python 没有任何问题。我尝试将代码移至笔记本电脑上的本地节点设置,但仍然遇到问题(所以不是 AWS)。由于它是 https 和我的控制之外的服务,我无法轻松地对流量进行 Wireshark 来发现响应是否以某种微妙的方式损坏 - 但是我尝试使用 Browsify 将代码转换为在 Web 浏览器中运行(我可以在其中使用wireshark),当然它然后就可以工作了,我看不出我得到的 json 响应有什么奇怪的。
我尝试使用响应模块而不是节点中的核心 https 库,但我仍然遇到相同的潜在错误。
我对我能做什么感到困惑 - 并且不知道如何调试它。我觉得这要么是格式问题,要么是时间问题——但我不知道如何解决这个问题。有人有想法吗?
我的代码如下所示:
var https = require('https');
var crypto = require('crypto');
function executeHttpRequest(path, data, method, username, password) {
var …Run Code Online (Sandbox Code Playgroud)