Не удается POST с ESP8266 (espruino) - PullRequest
0 голосов
/ 20 сентября 2019

Я не могу сделать почтовый запрос (получить нормально работает) с espruino.Я уже проверил документацию, и здесь мой код выглядит примерно равным:

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 возвращает только «соединение закрыто» console.log.Консоль сервера node.js (размещенная на heroku и протестированная с почтальоном) ничего не возвращает.Обь esp8266 подключен к сети

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

То, что вы делаете, выглядит нормально (пример HTTP Post здесь ), однако Espruino в настоящее время не поддерживает HTTPS на ESP8266 (на чипах недостаточно памяти для JS иHTTPS).

Таким образом, Espruino будет игнорировать https в URL и использовать HTTP.Возможно, ваш сервер поддерживает запросы HTTP GET, но запросы POST должны выполняться через HTTPS, поэтому он не работает?

Если вам нужно было использовать HTTPS с Espruino, то всегда есть официальные платы WiFi Espruino,или я верю, что ESP32 тоже хорошо это поддерживает.

0 голосов
/ 21 сентября 2019

вы используете пакет с именем "http" и затем пытаетесь отправить запрос через https.Вы также должны выйти из 'data' в res.close, чтобы вы могли получить некоторые ошибки для работы.

...