Я пытаюсь сделать запрос POST, используя мой esp8266.Я настроил webhook и пытаюсь вызвать его с помощью моего esp8266.Я пробовал различные методы, но это не похоже на работу.
Сначала я попытался использовать библиотеку ESP8266HTTPClient, но она не сработала.Затем я попытался сделать запрос на публикацию напрямую через client.println, но он также не работал.Когда я понял, что не могу отправить запросы http на настроенный мной веб-крючок, я начал отправлять его на локальный веб-сайт, который я сделал через экспресс, чтобы было проще протестировать его.При отправке простой команды curl я получаю правильный ответ, однако, когда я пытаюсь отправить http-вызов через esp8266, я не могу.
Вот моя попытка использования библиотеки ESP8266HTTPClient:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
const int sensorPin = 4;
WiFiServer server(80);
const String altLink = "http://localhost:3000/message";
const String ssid = "shefer 2.4GHz";
const String password = "1234554321";
void setup() {
Serial.begin(9600);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid,password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP Address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
HTTPClient http;
http.begin(altLink);
http.addHeader("Content-Type", "text/plain");
int sensorValue = int(analogRead(sensorPin)/128);
if(sensorValue >= 0 && sensorValue <=3){
Serial.println("Light is on, sending request");
int httpCode = http.POST("Hello from esp8266");
//int httpCode = http.POST("");
Serial.println("HTTP Code: " + httpCode);
if (httpCode != 200){
Serial.println("Couldn't send the request, got code: " + httpCode);
} else {
Serial.println("Request was sent successfully");
}
http.end();
delay(5000);
}
}
А вот моя попытка сделать запрос на публикацию напрямую через 'client.println'
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
WiFiServer server(80);
const String ssid = "shefer 2.4GHz";
const String password = "1234554321";
void setup() {
Serial.begin(9600);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid,password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP Address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client;
String data;
Serial.print("Requesting POST: ");
// Send request to the server:
client.println("POST /message HTTP/1.1");
client.println("Host: localhost:3000");
client.println("Accept: */*");
client.println("Content-Type: text/plain");
client.print("Content-Length: ");
client.println(data.length());
client.println();
client.print(data);
delay(50000);
}
Я ожидаю, что esp8266 отправит запрос POST, но это не так.Я перепробовал много вещей, и я довольно отчаялся.Вся помощь будет принята с благодарностью.Спасибо.