Невозможно выполнить POST с ESP8266 (espruino)
Я не могу отправить запрос на отправку (get отлично работает) с 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 и протестированная с почтальоном) ничего не возвращает. Obv esp8266 подключен к сети
2 ответа
То, что вы делаете, выглядит нормально (пример HTTP Post здесь), однако Espruino в настоящий момент не поддерживает HTTPS на ESP8266 (на чипах недостаточно памяти для JS и HTTPS).
Таким образом, Эспруино будет игнорировать https
в URL-адресе и через HTTP. Возможно, ваш сервер поддерживает запросы HTTP GET, но запросы POST должны выполняться через HTTPS, поэтому он не работает?
Если вам действительно нужно было использовать HTTPS с Espruino, тогда всегда есть официальные платы Espruino WiFi, или я считаю, что ESP32 также поддерживает его.
Вы используете пакет с именем "http", а затем пытаетесь отправить запрос по https. Вы также должны выйти из "data" в res.close, чтобы вы могли получить некоторые ошибки для работы.