🛠 Client HTTP : récupérer une page en GET

Arduino GIGA R1 WiFi · intermediaire · Schéma : IMG-giga-r1-wifi-intermediaire-4-client-http-get.svg — GIGA R1 WiFi connectée au routeur puis à un serveur web distant, requête GET partant vers le cloud et réponse HTML revenant vers le moniteur série

Objectifs

Connecter la GIGA R1 WiFi à un réseau WPA2 en mode station, puis envoyer une requête HTTP GET brute avec WiFiClient et lire la réponse. Vous apprendrez surtout le réflexe propre à cette carte : toujours vider intégralement le corps de la réponse TCP, car sur le core mbed des corps TCP non lus empoisonnent les connexions suivantes (issue ArduinoCore-mbed #937).

Matériel

Code complet

// GIGA R1 WiFi — client HTTP GET (HTTP simple, sans TLS : voir le tuto HTTPS)
#include <WiFi.h>

const char SSID[] = "your-ssid";
const char PASS[] = "your-pass";              // WPA2
const char SERVEUR[] = "example.org";
const int PORT = 80;

void connexion {
  Serial.print("Connexion a "); Serial.print(SSID);
  WiFi.begin(SSID, PASS);
  while (WiFi.status != WL_CONNECTED) { Serial.print("."); delay(200); }
  Serial.print(" OK — IP "); Serial.println(WiFi.localIP);
}

void setup {
  Serial.begin(115200);
  while (!Serial) {}
  connexion;

  WiFiClient client;
  if (!client.connect(SERVEUR, PORT)) { Serial.println("Connexion TCP echouee"); return; }
  client.print("GET / HTTP/1.0\r\n");
  client.print("Host: "); client.println(SERVEUR);
  client.print("Connection: close\r\n\r\n");

  unsigned long debut = millis;
  while (client.connected && millis - debut < 10000) {
    while (client.available) {
      Serial.write(client.read);   // on TOUT lit : ne jamais laisser des octets
    }                                // en attente (issue #937 sur le core mbed)
  }
  client.stop;                     // purge + fermeture propre
  Serial.println("\n--- fin de la réponse ---");
}

void loop {
  if (WiFi.status != WL_CONNECTED) WiFi.reconnect;
  delay(5000);
}

Vérification attendue

Après la ligne « Connexion à ... OK — IP 192.168.x.x », le moniteur série déverse le HTML renvoyé par le serveur (le contenu de la page d'exemple), puis « --- fin de la réponse --- ». Relancez plusieurs fois le sketch : chaque connexion doit réussir — c'est exactement là que le drainage complet du flux évite les blocages de l'issue #937.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels