Проблема при отправке данных с ESP8266 на Live Server с использованием HTTP POST REQUEST

Мне нужно отправить данные с esp8266 на 000webhostapp. 000webhostapp использует https, все соединение с сервером работает нормально, но отправка данных не работает.

Пробовал с несколькими кодами. с запросом на получение или почтовым запросом, но ни один из них не работал нормально. я изменил http-версии esp или http, но это тоже не сработало.

вот код

#include "DHTesp.h"
#include "ESP8266WiFi.h"
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#ifdef ESP32
#pragma message(THIS EXAMPLE IS FOR ESP8266 ONLY!)
#error Select ESP8266 board.
#endif

DHTesp dht;
const char* ssid = "*****";
const char* password =  "****";
const char server[] = "biracial-conspiracy.000webhostapp.com";  
WiFiClient client;
void setup()
{
  Serial.begin(9600);
  Serial.println();
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);             // Connect to the network
  Serial.print("Connecting to ");
  Serial.print(ssid); Serial.println(" ...");

  int i = 0;
  while (WiFi.status() != WL_CONNECTED) { /* Wait for the Wi-Fi to 
    connect*/
    delay(1000);
    Serial.print(++i); Serial.print(' ');
  }

  Serial.println("wl connected");
  Serial.println("");
  Serial.println("Credentials accepted! Connected to wifi\n ");
  Serial.println("");



  Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)\tHeatIndex 
  (C)\t(F)");
  dht.setup(2, DHTesp::DHT22); // Connect DHT sensor to GPIO 17
 }

 void loop()
 {

   if (client.connect(server, 80)) {
     Serial.println("connected to server");
     int humidity = dht.getHumidity();
     int temperature = dht.getTemperature();
     Serial.print("Humidity : ");
     Serial.print(humidity);
     Serial.print("\t");
     Serial.print(" Temperature in Celcius : ");
     Serial.print(temperature);
     Serial.print("\t");
     Serial.print(" Moisture: ");
     Serial.println(analogRead(A0));
     HTTPClient http;
     int moisture = analogRead(A0);

     String data = "temp=" + String(temperature) + "&moisture=" + 
    String(moisture) + "&humidity=" + String(humidity);
    client.println("POST firebase.php HTTP/1.1");
    client.println("Host: biracial-conspiracy.000webhostapp.com\n");
    client.println("User-Agent: ESP8266/1.0");
    client.println("connection: close");
    client.status();
    client.println("Content-Type: application/x-www-form-urlencoded");
    client.print("Content-Length: ");
    client.print(data.length());
    client.print("\n\n");
    client.print(data);
    delay(1000);
    Serial.println("\n");
    Serial.println("Data sending is : ");
    Serial.println(data);
    Serial.println("The byte is : ");
    Serial.println(data.length());
    client.stop();
   }
   else
   {
    Serial.println("Server Error.");
   }


 }

person Ahsan Sarwar    schedule 17.05.2019    source источник
comment
Вы пытались отправить запрос, используя что-то вроде postMan?   -  person B45i    schedule 07.06.2019


Ответы (1)


Вы не можете использовать WiFiClient для подключения к HTTPS. Вам необходимо использовать клиентскую библиотеку с TLS, например WiFiClientSecure. для подключения к HTTPS-серверу.

person Bora    schedule 17.05.2019