Comment envoyer une requête HTTPS - GET/POST en utilisant le code Nodemcu - Arduino.

J'ai cherché pendant des jours un exemple fonctionnel qui envoie une requête GET à l'aide du protocole HTTPS à un site Web et tous les exemples que j'ai trouvés ont échoué.

J'espère que ça en aidera d'autres aussi !

2
Lepy 15 nov. 2020 à 17:34

1 réponse

Meilleure réponse

voici le lien qui m'a aidé

Pour que les exemples fonctionnent avec le protocole HTTPS, vous devez utiliser la bibliothèque WiFiClientSecure et appeler la fonction client.setInsecure() de l'objet WiFiClientSecure que vous avez.

Voici un code entièrement fonctionnel:

#include <ESP8266WiFi.h>

const char* ssid     = "WIFI_SSID";
const char* password = "WIFI_PASS";

const char* host = "DOMAIN_NAME"; // only google.com not https://google.com

void setup() {
  Serial.begin(115200);
  delay(10);

  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  delay(5000);

  Serial.print("connecting to ");
  Serial.println(host);

  // Use WiFiClient class to create TCP connections
  WiFiClientSecure client;
  const int httpPort = 443; // 80 is for HTTP / 443 is for HTTPS!
  
  client.setInsecure(); // this is the magical line that makes everything work
  
  if (!client.connect(host, httpPort)) { //works!
    Serial.println("connection failed");
    return;
  }

  // We now create a URI for the request
  String url = "/arduino.php";
  url += "?data=";
  url += "aaaa";


  Serial.print("Requesting URL: ");
  Serial.println(url);

  // This will send the request to the server
  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");

  Serial.println();
  Serial.println("closing connection");
}
2
Lepy 15 nov. 2020 à 14:34