http.POST не отправляет данные на локальную веб-страницу

Я использую NodeMCU для отправки данных на мою локальную веб-страницу, разработанную с использованием Spring boot, но когда я запускаю код, я не получаю ошибку esp8266 подключается к Wi-Fi, но я ничего не получаю в своем приложении spring boot или каких-либо ответов. Вот контроллер rest, используемый из spring boot

@RestController
@RequestMapping("/getallcadres")
public class cadreController {
    @Autowired
    cadreRepository cadre;

@PostMapping("/getnbpassage")
    public String getnbrpassage(@RequestBody String nb){
        System.out.println("nombre de passage = "+nb);
        return "received";

    }
}

и код Arduino

#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>

void setup() {

  Serial.begin(9600);//Последовательное соединение
  WiFi.disconnect();
  WiFi.begin("Iphone de elaa", "27343550");   //Подключение Wi-Fi

  while (WiFi.status() != WL_CONNECTED) {  //Дождитесь завершения подключения Wi-Fi

    delay(500);
    Serial.println("Waiting for connection");

  }
  Serial.println("Wifi is connected");
  Serial.println(WiFi.localIP());

}

void loop() {

 if(WiFi.status()== WL_CONNECTED){   //Проверить состояние подключения Wi-Fi
 Serial.println("here we start");
   HTTPClient http;    //Объявить объект класса HttpClient

   http.begin("http://localhost:8080/getallcadres/getnbpassage"); //Указать пункт назначения запроса
   http.addHeader("Content-Type", "text/plain");  //Указать заголовок content-type

   int httpCode = http.POST("5");   //Отправить запрос
   String payload = http.getString();//Получить полезную нагрузку ответа

   Serial.println("return code"+httpCode);   //Print HTTP return code
   Serial.println(payload);    //Полезная нагрузка ответа на запрос печати

   http.end();  //Закрыть соединение

 }else{

    Serial.println("Error in WiFi connection");   

 }

  delay(30000);  //Отправка запроса каждые 30 секунд

}

Я использую Arduino IDE 1.6.5 вот что я получаю

, 👍1


1 ответ


Лучший ответ:

0

Ваш URL-адрес имеет localhost в качестве имени хоста. Это не сработает. localhost означает “я”, компьютер, инициирующий запрос. В данном случае это означало бы ESP8266, если бы он вообще это понимал. Вам нужно использовать имя или IP-адрес компьютера, на котором запущено приложение spring boot, а не localhost.

,

спасибо, что сработало для меня, @Ela Hidri