不能 POST 与 ESP8266 (espruino)

Cannot POST with ESP8266 (espruino)

我无法使用 espruino 发出 post 请求(get 工作正常)。 我已经检查过文档,看起来相当 这是我的代码:

let json = JSON.stringify({v:"1"});

let options = {
    host: 'https://******,
    protocol: 'https',
    path: '/api/post/*****',
    method: 'POST',
    headers:{
      "Content-Type":"application/json",
      "Content-Length":json.length
    }
  };

let post = require("http").request(options, function(res){
  res.on('data', function(data){
    console.log('data: ' + data);
  });
  res.on('close', function(data){
    console.log('Connection closed');
  });
});

post.end(json);

espruino 控制台仅 return 'connection closed' console.log。 node.js 服务器控制台(托管在 heroku 上并用 postman 测试)没有 return 任何东西。 Obv esp8266已连接到网络

您正在使用一个名为 "http" 的包,然后尝试通过 https 发送请求。您还应该在 res.close 中注销 'data',这样您就可以处理一些错误。

您所做的看起来不错(HTTP Post example is here),但是 Espruino 目前不支持 ESP8266 上的 HTTPS(芯片上没有足够的内存用于 JS 和 HTTPS)。

因此 Espruino 将忽略 URL 中的 https 并通过 HTTP 进行。您的服务器可能支持 HTTP GET 请求,但 POST 请求必须通过 HTTPS 发出,这就是它不起作用的原因?

如果您确实需要将 HTTPS 与 Espruino 一起使用,那么总是有官方的 Espruino WiFi 板,或者我相信 ESP32 也支持它。